ElasticSearch Volltextsuche mit Java API

8

Ich habe kürzlich angefangen, die Welt der Suche zu erforschen und versuche, ES als den Index für meine MongoDB zu verwenden. Ich habe es geschafft, sie erfolgreich zu integrieren, aber ich finde die Such-API ziemlich komplex und verwirrend. Die Java API ist auch nicht sehr hilfreich. Ich finde genaue Übereinstimmungen, aber wie mache ich Volltextsuchen? Hier ist mein Code:

%Vor%

Ich habe keine Probleme, "name":"testname" mit .setQuery(termQuery("name", "testname")) zu finden, aber "name":"this is a test name" funktioniert nicht mit dem obigen Beispiel. Was mache ich falsch?

    
Wei Hao 12.01.2013, 19:53
quelle

3 Antworten

8

Nachdem ich stundenlang im Internet gecrawlt habe, habe ich es mit Hilfe der javadocs herausgefunden. Am wichtigsten ist die Schnittstelle *QueryBuilder* und ihre implementierenden Klassen. Ich habe FieldQueryBuilder für meine Abfrage verwendet, was in der setQuery Methode unten gezeigt wird.

%Vor%

Mit dem resultierenden Map-Objekt können Sie einfach die Methode get aufrufen, um die relevanten Daten abzurufen.

    
Wei Hao 14.01.2013, 08:26
quelle
0

Es sieht so aus, als ob termQuery in elasticsearch Lucens für seine Suchsyntax verwendet. Laut den Lucene-Dokumenten ist das Platzhalterzeichen "*" als erster Suchbegriff nicht zulässig.

    
mjhm 12.01.2013 21:51
quelle
0

Sehen Sie sich besser [Wildcard-Abfrage] an ( Ссылка )

    
Arepalli Praveenkumar 13.07.2014 18:55
quelle

Tags und Links