Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20947|Antwort: 1

ElasticSearch-Compound-Abfragen müssen und sollten must_not verwendet werden

[Link kopieren]
Veröffentlicht am 28.12.2018 12:01:09 | | |
Bool Joint Frage: Muss, sollte, must_not

Wenn wir etwas Ähnliches wie "Inhalt mit BMW, aber nicht im Tag" anfordern wollen, müssen wir Bool Federated Query verwenden.

Die gemeinsame Abfrage verwendet drei Schlüsselwörter: muss, sollte, must_not.

Diese drei können auf diese Weise verstanden werden

must: Das Dokument muss genau den Bedingungen entsprechen
should: Sollte mehr als eine Bedingung enthalten, und wenn mindestens eine Bedingung erfüllt ist, erfüllt dieses Dokument sollte
must_not:Das Dokument darf nicht den Kriterien entsprechen

Offizielle Website-Einführung:https://www.elastic.co/guide/cn/ ... bining-filters.html

Abfrage von DSL

match_all Abfrage

Alle Dokumente können abgefragt werden, und es ist die Standardanweisung ohne Abfragebedingungen.


Diese Abfrage wird häufig verwendet, um Filter zusammenzuführen. Zum Beispiel müssen Sie alle Postfächer abrufen, und die Relevanz aller Dokumente ist gleich, sodass die _score, die Sie erhalten, 1 ist.

Match-Abfrage

Eine Match-Abfrage ist eine Standardanfrage, die im Grunde verwendet wird, egal ob Sie eine Volltextanfrage oder eine exakte Abfrage benötigen.

Wenn Sie einen Match verwenden, um ein Volltextfeld abzufragen, verwendet er den Analyzer, um die Abfragezeichen vor der eigentlichen Abfrage zu parsen:



Wenn Sie einen genauen Wert unter dem Match angeben, sucht es nach Ihrem gegebenen Wert, wenn es auf eine Zahl, ein Datum, einen Booleschen oder not_analyzed String stößt:


Tipp: Bei einer Exakt-Match-Suche ist es am besten, Filter-Anweisungen zu verwenden, da Filter-Anweisungen Daten zwischenspeichern.

Eine Match-Abfrage kann nur nach einem exakten Wert suchen, der ein exaktes Feld angibt, und man muss nur den korrekten Feldnamen dafür angeben, um Syntaxfehler zu vermeiden.

multi_match Abfrage

multi_match Abfrage ermöglicht es Ihnen, mehrere Felder gleichzeitig basierend auf einer Match-Abfrage zu durchsuchen und gleichzeitig in mehreren Feldern eines nachzuschlagen:


BOOL-Anfrage

Bool-Abfragen ähneln der Bool-Filterung und werden verwendet, um mehrere Abfrageklauseln zusammenzuführen. Der Unterschied besteht darin, dass der Bool-Filter direkt angeben kann, ob das Match erfolgreich ist, während die Bool-Abfrage den _score (Korrelationswert) jeder Abfrageklausel berechnet.

must:: 查询指定文档一定要被包含。
must_not:: Abfrageformulierte Dokumente dürfen nicht enthalten sein.
should:: 查询指定文档,有则可以为文档相关性加分。

Die folgende Abfrage ergibt, dass das Titelfeld "Wie man Millionen verdient" enthält und das "Tag"-Feld nicht als Spam markiert ist. Wenn sie als "gesternt" gekennzeichnet sind oder ein Veröffentlichungsdatum vor 2014 haben, sind diese passenden Dokumente auf einem höheren Niveau als ähnliche Seiten:


Tipp: Wenn es unter der Bool-Anfrage keine Must-Klausel gibt, sollte es mindestens eine Must-Klausel geben. Gibt es jedoch eine Must-Klausel, kann die Abfrage auch ohne die Bedarfsklausel gestellt werden.

Wildcards-Abfrage

Verwenden Sie Standard-Shell-Wildcard-Abfragen

Die folgende Abfrage stimmt mit Dokumenten überein, die W1F 7HW und W2F 8HW enthalten:


Zum Beispiel entspricht die folgende Abfrage für den Hostnamen der folgenden Shell-Wildcard:


regexp-Abfrage

Angenommen, du möchtest nur Postleitzahlen abgleichen, die mit W gefolgt von Zahlen beginnen. Mit Regexp-Abfragen können Sie komplexere Muster schreiben:



Dieser reguläre Ausdruck legt fest, dass der Eintrag mit W beginnen muss, gefolgt von einer Zahl von 0 bis 9, gefolgt von einem oder mehreren weiteren Zeichen.

Das folgende Beispiel ist, dass alle regulären Starts mit wxopen beginnen


Präfixanfrage

Mit welchem Charakter beginnt es, kannst du das Präfix einfacher verwenden, wie im untenstehenden Beispiel:


Phrasenabgleichen

Wenn Sie ein paar Wörter in der Nähe finden müssen, verwenden Sie match_phrase Frage:


Ähnlich wie bei Match-Abfragen parst match_phrase Abfrage zunächst die Abfragezeichenkette, um eine Liste von Begriffen zu erstellen. Es wird nach allen Einträgen suchen,
Es werden jedoch nur Dokumente aufbewahrt, die alle Suchbegriffe enthalten, und die Positionen der Begriffe sollten nebeneinander liegen. Eine Anfrage nach dem Begriff Quick Fox passt nicht zu
Jede unserer Dokumentationen, da keine Dokumentation Schnell- und Boxeinträge nebeneinander enthält.
match_phrase Abfrage kann auch als Übereinstimmungsanfrage mit einer Typphrase geschrieben werden:







Vorhergehend:Gekauft von der China Accounting Online School am 18. Dezember (Accounting Practice Level 6 Zollabfertigungstrainingslager)
Nächster:C# regex nimmt den Wert des A-Tag href in HTML
Veröffentlicht am 22.11.2022 14:25:30 |
Lerne es, danke, Vermieter.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com