0

Ich versuche, basierend auf Titel (string as "Hunter Game", "Hunter", "HunterGame", "Hunter-Game") und Paketname (string as "az.com.hsz.hunter.game", "az.com.hsz.hunter-game", "az.com.hsz.hunter_game", "az.com.hsz.hunterGame") einen Vorschlag zur automatischen Vervollständigung zu erstellen.Elasticsearch Autocomplete - Komplettierungsvorschlag von dot & whitespace für übereinstimmende Eingabe

Mapping ist wie folgt:

{ 
    "app-search-test": { 
    "mappings": { 
     "package": { 
     "properties": 
     {"title": { 
      "type": "string", 
      "analyzer": "autocomplete" 
      }, 
      "package_name": { 
      "type": "string" 
      }, 
      "title-suggest": { 
      "type": "completion", 
      "analyzer": "simple", 
      "payloads": true, 
      "preserve_separators": false, 
      "preserve_position_increments": true, 
      "max_input_length": 50 
      } 
     } 
     } 
    } 
    } 
} 

Dokument mit Suggestion String ist:

{ 
    "title": "HUnter Game", 
    "package_name": "az.com.hsz.hunter.game", 
    "title-suggest": { 
       "output": "Hunter Game", 
       "input": "[az.com.hsz.hunter.game, Hunter Game]", 
       "payload": { 
        "package_name": "az.com.hsz.hunter.game", 
        "icon": "<some-url>", 
        "developer": "Vish", 
        "id": "az.com.hsz.hunter.game", 
        "title": "Hunter Game" 
       } 
       } 
} 

Index Rahmen:

"analysis": { 
      "filter": { 
      "words_splitter": { 
       "type": "word_delimiter", 
       "preserve_original": "true", 
       "catenate_all": "true" 
      }, 
      "ngram": { 
       "type": "ngram", 
       "min_gram": "2", 
       "max_gram": "15" 
      } 
      }, 
      "analyzer": { 
      "autocomplete": { 
       "type": "custom", 
       "filter": [ 
       "standard", 
       "lowercase", 
       "stop", 
       "kstem", 
       "ngram", 
       "words_splitter" 
       ], 
       "tokenizer": "keyword" 
      } 
      } 
     } 

Ich erwarte Vorschlag Hunter Spiel zu bekommen, für die Suche nach az.com.hsz.hunter.game oder Hunter Game, die entweder nach Titel oder Paket nam ist e. Aber für Dokument mit Eingabe "input": "[az.com.hsz.hunter.game, Hunter Game]", erwartet Suggestection für den ersten Eingabewert az.com.hsz.hunter.game nicht mit zweiter Hunter Game. Wenn die Eingabe umgekehrt wird "input": "[Hunter Game, az.com.hsz.hunter.game]" Vorschlag funktioniert für Hunter Game, aber nicht mit az.com.hsz.hunter.game.

Wie funktioniert es?

Antwort

0

Ich denke, durch versehentlich machen Sie Eingabe eine ganze Zeichenfolge statt einer Liste von Zeichenfolgen.

"input": ["az.com.hsz.hunter.game", "Hunter Game"] 

wird funktionieren.

derzeit "[az.com.hsz.hunter.game, Hunter Game]" wird als eine Zeichenfolge betrachtet und daher erhalten Sie das Ergebnis zurück, je nachdem, was das erste Zeichen ist.

Verwandte Themen