Gefällt mir in Elasticsearch

8

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.

    
Dixit Sourav 02.07.2015, 05:09
quelle

2 Antworten

16

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!

%Vor%

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 =)

    
Daniel Hoffmann-Mitscherling 02.07.2015, 05:36
quelle
1
%Vor%

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:

%Vor%

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:

Ссылка

    
Pranav Mishra 02.07.2015 05:18
quelle