Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 20947|Svar: 1

ElasticSearch sammansatta frågor måste, bör must_not användas

[Kopiera länk]
Publicerad på 2018-12-28 12:01:09 | | |
Bool Joint Query: måste, bör, must_not

Om vi vill begära något liknande "innehåll med BMW, men inte i tagg", måste vi använda bool federated query.

Den gemensamma sökningen kommer att använda tre nyckelord: måste, borde, must_not.

Dessa tre kan förstås på detta sätt

must: Dokumentet måste exakt matcha villkoren
should: bör ha mer än ett villkor, och om minst ett villkor uppfylls, kommer detta dokument att uppfylla should
must_not:Dokumentet får inte uppfylla kriterierna

Officiell introduktion på webbplatsen:https://www.elastic.co/guide/cn/ ... bining-filters.html

Sök i DSL

match_all Fråga

Alla dokument kan frågas, och det är standardsatsen utan frågevillkor.


Denna fråga används ofta för att slå ihop filter. Till exempel måste du hämta alla brevlådor, och all dokumentrelevans är densamma, så _score du får är 1.

Matchningsfråga

En matchningsfråga är en standardfråga som i princip används oavsett om du behöver en fulltextfråga eller en exakt fråga.

Om du använder match för att fråga ett fulltextfält, kommer analysatorn att använda för att tolka frågetecknen innan själva frågan:



Om du anger ett exakt värde under matchning kommer den att söka efter ditt givna värde när den stöter på ett tal, datum, boolean eller not_analyzed sträng:


Tips: När du gör en exakt matchningssökning är det bäst att använda filtersatser eftersom filtersatser cacklar data.

En matchningsfråga kan bara söka efter ett exakt värde som specificerar ett exakt fält, och allt du behöver göra är att ange rätt fältnamn för att undvika syntaxfel.

multi_match Fråga

multi_match fråga låter dig söka i flera fält samtidigt baserat på en matchningsfråga, och slå upp ett fält i flera fält samtidigt:


BOOL-fråga

Bool-frågor liknar bool-filtrering och används för att slå ihop flera frågeklausuler. Skillnaden är att bool-filtret direkt kan ange om matchningen är framgångsrik, medan bool-frågan beräknar _score (korrelationspoäng) för varje frågeklausul.

must:: 查询指定文档一定要被包含。
must_not:: Dokument som anges får inte inkluderas för att söka på den.
should:: 查询指定文档,有则可以为文档相关性加分。

Följande fråga visar att titelfältet innehåller "hur man tjänar miljoner" och att fältet "tagg" inte är markerat som skräppost. Om de är märkta som "stjärnmärkta" eller har ett releasedatum före 2014, kommer dessa matchande dokument att vara på en högre nivå än liknande webbplatser:


Tips: Om det inte finns någon must-klausul under bool-frågan, borde det finnas minst en should-klausul. Men om det finns en måste-klausul kan frågan också göras utan behovsklausulen.

Vildkortsfråga

Använd standard-skal-wildcard-frågor

Följande fråga matchar dokument som innehåller W1F 7HW och W2F 8HW:


Till exempel matchar följande fråga för värdnamn följande shell-wildcard:


regexp-fråga

Låt oss säga att du vill matcha endast postnummer som börjar på W följt av siffror. Genom att använda regexp-frågor kan du skriva mer komplexa mönster:



Detta reguljära uttryck anger att posten måste börja med W, följt av ett tal från 0 till 9, följt av en eller flera andra tecken.

Följande exempel är att alla reguljära starter med wxopen


Prefixfråga

Vilken karaktär börjar med kan du använda prefixet enklare, som i exemplet nedan:


Frasmatchning

När du behöver hitta några ord nära använder du match_phrase fråga:


Liknande matchningsfrågor tolkar match_phrase fråga först frågesträngen för att producera en lista med termer. Den kommer att söka efter alla poster,
Dock sparas endast dokument som innehåller alla söktermer, och termernas positioner bör vara intilliggande. En fråga på frasen Quick Fox kommer inte att stämma överens
någon av våra dokument, eftersom ingen dokumentation innehåller snabb- och boxposter intill varandra.
match_phrase fråga kan också skrivas som en matchningsfråga med typfras:







Föregående:Köpt av China Accounting Online School den 18 december (Redovisningspraktik nivå 6 tullklareringsträningsläger)
Nästa:C# regex tar värdet av A-taggen href i HTML
Publicerad på 2022-11-22 14:25:30 |
Lär dig det, tack hyresvärd
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com