2

Ich plane, den Suchverlauf der Benutzer zu verwalten, indem ich jeden Suchtext als Dokument in der elastischen Suche indiziere. Ich dachte daran, eine Präfix-Abfrage zu verwenden, um eine Liste von Vorschlägen für die Benutzer zu erhalten. zusammen mit der Präfix-Abfrage habe ich eine Multimatch-Abfrage verwendet, um die Begriffe zu erhalten, die in der Mitte des Textes übereinstimmen.Wie gut ist es, Elasitc Suche Präfix Abfrage in Bezug auf die Leistung zu verwenden?

die Pseudo-Abfrage sieht aus wie folgt:

{ 
"query" : { 
    bool : { 
      should : { 
        "Prefix query"{ 
         } 
        "multimatch query"{ 
        } 
      } 
    } 
} 

}

Davor Ich mag würde wissen, wie gut es Präfix Abfrage für sugestions verwenden.

Ich führe einen Index für jeden Tag und möchte die Geschichte der letzten 30 Tage abfragen.

wird es ein Leistungsproblem sein? Ich möchte dies löschen, bevor ich mit der Implementierung beginne. Und gibt es Alternativen für die Präfixabfrage in dieser Art von Szenario?

Ich habe bereits Vorschläge mit Fertigstellung suggester umgesetzt aber meine Anforderung Benutzer mit Vorschlägen auf Geschichte basierten bereitzustellen und mit einer Unterstützung von als auch die Bedingungen in der Mitte des Textes entspricht.

Antwort

0

Normalerweise Elasticsearch macht einen guten Job bei der Suche. In komplexen geschachtelten Aggregationsabfragen kann es langsamer sein, die einfache Suche ist jedoch sehr schnell. Ich glaube nicht, dass Sie sich im Voraus zu viel Gedanken machen müssen.

1

In meinem vorherigen Projekt verwendeten wir die Abfragesprache, die sich stark auf Operatoren wie diese bezieht Sterne | Teil der Laufzeit | Sterne, und ich könnte in einigen schlechten curcimstances (großer Index - 100+ mln Dokumente, große Text zu analysieren, komplexe Begriffe, mehrere Sprachen) - Lucene konnte sich langsam verhalten (im Grunde, weil führende Sterne sind schwer in Standard-Lucene-Implementierung, auch, sie sind verboten). Alles wurde implementiert ohne MultiMatchQuery.

Man könnte sich vorstellen, dass Verbesserungen wie Suffixarray (https://en.wikipedia.org/wiki/Suffix_array) Umsetzung helfen (zumindest, es half uns)

So, Schluss, seien Sie vorsichtig, und wenn Ihr Index (da es nur 30 Tage der Geschichte) ist relativ klein, sollte es dir gut gehen.

+0

das würde mich wirklich zu starten. Danke für die Erfahrung –

Verwandte Themen