0

J'essaie de créer une suggestion auto-complète basée sur le titre (string as "Hunter Game", "Hunter", "HunterGame", "Hunter-Game") et le nom du package (string as "az.com.hsz.hunter.game", "az.com.hsz.hunter-game", "az.com.hsz.hunter_game", "az.com.hsz.hunterGame").Elasticsearch Saisie semi-automatique - Suggestion de complétion de dot & whitespace pour l'entrée correspondante

Mapping est la suivante:

{ 
    "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 
      } 
     } 
     } 
    } 
    } 
} 

document avec Suggestion chaîne est:

{ 
    "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" 
       } 
       } 
} 

Indice Cadre:

"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" 
      } 
      } 
     } 

J'attends pour obtenir suggestion Hunter jeu, pour la requête az.com.hsz.hunter.game ou Hunter Game, qui est soit par titre ou par nom de paquet e. Mais pour le document avec l'entrée "input": "[az.com.hsz.hunter.game, Hunter Game]", obtenir suggetion attendu pour la première valeur d'entrée az.com.hsz.hunter.game pas avec le second Hunter Game. Si l'entrée est inversée "input": "[Hunter Game, az.com.hsz.hunter.game]" suggestion fonctionnant pour Hunter Game, mais pas avec az.com.hsz.hunter.game.

Comment le faire fonctionner?

Répondre

0

Je pense par accident que vous faites l'entrée une chaîne entière plutôt qu'une liste de chaînes.

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

fonctionnera.

actuellement "[az.com.hsz.hunter.game, Hunter Game]" est considéré comme une chaîne et donc vous obtenez le résultat en fonction de ce qui est le premier caractère.