Ich benutze Elasticsearch zum Filtern und Suchen von JSON-Datei und ich bin ein Neuling in dieser Technologie. Ich bin also ein wenig verwirrt, wie man in elasticsearch wie eine Suchanfrage schreibt.
%Vor%Dies ist eine MySQL-Abfrage. Wie schreibe ich diese Abfrage in Elasticsearch? Ich benutze elasticsearch Version 0.90.7.
Ich würde sehr empfehlen, Ihre ElasticSearch-Version zu aktualisieren, wenn es seit 0.9.x signifikante Änderungen gegeben hat.
Diese Frage ist nicht spezifisch genug, da es viele Möglichkeiten gibt, wie ElasticSearch diese Funktionalität erfüllen kann, und sie unterscheiden sich geringfügig von Ihrem Gesamtziel. Wenn Sie versuchen, diese SQL-Abfrage genau zu replizieren, dann verwenden Sie in diesem Fall die Wildcard-Abfrage oder -Präfix-Abfrage.
Verwenden Sie eine Platzhalter Abfrage:
Hinweis: Seien Sie vorsichtig bei der Suche mit Platzhaltern, sie sind langsam. Vermeiden Sie die Verwendung von Platzhaltern am Anfang der Zeichenfolgen.
%Vor%Oder Präfix-Abfrage
%Vor%Oder teilweise Übereinstimmung :
Hinweis: Verwendet NICHT blind die partielle Übereinstimmung, während es für die Verwendung Eckfälle gibt, ist die korrekte Verwendung von Analysatoren fast immer besser.
Auch diese exakte Abfrage entspricht LIKE '%a%'
, was wiederum mit der richtigen Verwendung des Mappings und einer normalen Abfragesuche besser eingerichtet werden könnte!
Wenn Sie diese Frage nach einer ähnlichen Abfrage von ES nach "Search-as-you-type" lesen, würde ich vorschlagen, auf edge-ngrams , die sich auf die korrekte Verwendung von Mapping beziehen, je nachdem, was Sie versuchen zu tun =)
Sie können "type" : "phrase_prefix"
verwenden, um die Suche nach einem Präfix oder einem Postfix zu suchen
Java-Code für das gleiche:
Geben Sie "und filtern" Beispiel, so dass Sie zusätzliche Filter hinzufügen können, wenn Sie möchten. Überprüfen Sie dies für weitere Details:
Tags und Links java php elasticsearch elasticsearch-plugin elasticsearch-net