Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 20947|Antwoord: 1

ElasticSearch compound-zoekopdrachten moeten, moeten, must_not gebruikt worden

[Link kopiëren]
Geplaatst op 28-12-2018 12:01:09 | | |
Bool joint vraag: moet, moet, must_not

Als we iets willen aanvragen dat lijkt op "content with BMW, but not in tag", moeten we bool federated query gebruiken.

De gezamenlijke zoekopdracht zal drie trefwoorden gebruiken: moet, moet, must_not.

Deze drie kunnen op deze manier worden begrepen

must: Het document moet exact overeenkomen met de voorwaarden
should: moet meer dan één voorwaarde hebben, en als ten minste één voorwaarde wordt vervuld, zal dit document aan moeten voldoen
must_not:Het document mag niet aan de criteria voldoen

Officiële website introductie:https://www.elastic.co/guide/cn/ ... bining-filters.html

DSL opvragen

match_all Query

Alle documenten kunnen worden geraadpleegd, en het is de standaardinstructie zonder queryvoorwaarden.


Deze query wordt vaak gebruikt om filters samen te voegen. Je moet bijvoorbeeld alle mailboxen ophalen, en alle documentrelevantie is hetzelfde, dus de _score die je krijgt is 1.

Match-query

Een match-query is een standaardquery die in feite wordt gebruikt, of je nu een full-text query nodig hebt of een exacte query.

Als je match gebruikt om een full-text veld te queryen, gebruikt hij de analyzer om de querytekens te parsen vóór de daadwerkelijke query:



Als je een exacte waarde onder match specificeert, zal het zoeken naar je gegeven waarde wanneer het een getal, datum, booleaan of not_analyzed string tegenkomt:


Tip: Bij een exacte match search is het het beste om filterstatements te gebruiken, omdat filterstatements data cachen.

Een matchquery kan alleen zoeken naar een exacte waarde die een exact veld specificeert, en je hoeft alleen maar de juiste veldnaam op te geven om syntaxisfouten te voorkomen.

multi_match Query

multi_match query stelt je in staat om meerdere velden tegelijk te doorzoeken op basis van een match-query, en één veld tegelijk in meerdere velden op te zoeken:


Bool Query

Bool-queries lijken op bool-filtering en worden gebruikt om meerdere queryclausules samen te voegen. Het verschil is dat het bool-filter direct kan aangeven of de match succesvol is, terwijl de bool-query de _score (correlatiescore) van elke queryclausule berekent.

must:: 查询指定文档一定要被包含。
must_not:: Opgegeven documenten mogen niet worden opgenomen.
should:: 查询指定文档,有则可以为文档相关性加分。

De volgende zoekopdracht zal zien dat het titelveld "hoe maak je miljoenen" bevat en dat het "tag"-veld niet als spam is gemarkeerd. Als ze als "gestern" zijn gelabeld of een publicatiedatum vóór 2014 hebben, dan zullen deze overeenkomstige documenten op een hoger niveau zijn dan vergelijkbare sites:


Tip: Als er geen must-clausule onder de bool-vraag staat, zou er minstens één should-clausule moeten zijn. Maar als er een must-clausule is, kan de query ook zonder de need-clausule worden gedaan.

Wildcards-query

Gebruik standaard shell wildcard-queries

De volgende zoekopdracht komt overeen met documenten die W1F 7HW en W2F 8HW bevatten:


Bijvoorbeeld, de volgende zoekopdracht voor hostnaam komt overeen met de volgende shell wildcard:


regexp-query

Stel dat je alleen postcodes wilt matchen die beginnen met W gevolgd door cijfers. Met regexp-queries kun je complexere patronen schrijven:



Deze reguliere expressie specificeert dat de invoer moet beginnen met W, gevolgd door een getal van 0 tot 9, gevolgd door een of meer andere tekens.

Het volgende voorbeeld is dat alle reguliere starts met wxopen zijn


Prefix-query

Met welk personage begint het prefix, kun je eenvoudiger gebruiken, zoals in het onderstaande voorbeeld:


Zinnenmatching

Wanneer je een paar woorden dicht bij elkaar moet vinden, gebruik je match_phrase zoekopdracht:


Net als bij match-queries parseert match_phrase query eerst de querystring om een lijst met termen te produceren. Het zal alle vermeldingen opzoeken,
Echter, alleen documenten worden bewaard die alle zoektermen bevatten, en de posities van de termen moeten naast elkaar liggen. Een zoekopdracht voor de term Quick Fox zal niet overeenkomen
Al onze documentatie, want geen enkele documentatie bevat snelle en box-items naast elkaar.
match_phrase query kan ook worden geschreven als een matchquery met een typefrase:







Vorig:Gekocht door China Accounting Online School op 18 december (Accounting Practice Level 6 Customs Clearance Training Camp)
Volgend:C# regex neemt de waarde van de A-tag href in HTML
Geplaatst op 22-11-2022 14:25:30 |
Leer het wel, dank je verhuurder
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com