2016-05-11 11 views
1

Kann Elasticsearchs edgen_n_grams so eingerichtet werden, dass mehrsprachige Phrasen als ES-Indizes durchforstet werden?Suchvorschläge für mehrere Wörter erstellen

Ich möchte diese Mehrwortphrasen als Suchvorschläge für eine kleine Such-App verwenden, die ich gerade erstelle.

Ich verwende Nutch, um einige Websites zu crawlen und ES zu verwenden, um die gecrawlten Daten zu indizieren.

Ich dachte, dass, da ES split teilen kann auf whitespace - das sollte nicht so schwer sein ... aber ich bekomme nicht die Ergebnisse, die ich erwartet habe. Also frage ich jetzt, ob das überhaupt möglich ist?

Mein ES Index ist Setup wie diese

PUT /_template/autocomplete_1 
{ 
    "template": "auto*", 
    "settings": { 
    "index": { 
     "number_of_shards": 1, 
     "number_of_replicas": 1 
    }, 
    "analysis": { 
     "filter": { 
     "autocomplete_filter": { 
      "type": "edge_ngram", 
      "min_gram": "1", 
      "max_gram": "30", 
      "token_chars": ["letter","digit","whitespace"] 
     } 
     }, 
     "analyzer": { 
     "autocomplete_analyzer": { 
      "type": "custom", 
      "tokenizer": "standard", 
      "filter": [ 
      "lowercase", 
      "autocomplete_filter" 
      ]  
      } 
     } 
     } 
    }, 
    "mappings": { 
     "doc": { 
     "_all": { 
      "enabled": false 
     }, 
     "properties": { 
     "anchor": { 
      "type": "string" 
     }, 
     "boost": { 
      "type": "string" 
     }, 
     "content": { 
      "type": "string", 
      "index_analyzer": "autocomplete_analyzer", 
      "search_analyzer": "standard" 
     },... 

"content" ist das html Körperfeld pro Nutch. Ich verwende "Inhalt", da ich dachte, dass es die meisten Sätze erzeugen würde.

+2

Für Multi-Wort-Sätze Erstellen Sie benötigen [Schindeln] (https://www.elastic.co/blog/searching-with-shingles), aber ich bin mir nicht sicher, welche Art von Autovervollständigen Sie benötigen. Haben Sie ein Beispieldokument und einen Beispielsuchtext? –

+0

@AndreiStefan, etwas in Bezug auf die Suche nach einem Film Titel wie "die schnelle und die Furios" oder "schnell 5" oder "schnell fünf" und die Suchanfrage wäre "f" - Ich lese jetzt auf Schindeln – user3125823

+0

@AndreiStefan, ich denke das ist genau das was ich gesucht habe! Setzen Sie die Informationen in eine Antwort und ich werde es akzeptieren, vielen Dank. – user3125823

Antwort

1

Zum Erstellen von Mehrwortphrasen benötigen Sie shingles. Genauer gesagt, this token filter, die Token kombinieren können.