2

Elasticsearch を使用して小さな検索アプリを作成しており、複数の単語 (フレーズ) の提案を使用してオートコンプリート機能を作成する方法を見つけようとしています。私はそれが働いています...ちょっと...

ほとんどの場合、1 つの単語の候補が表示されますが、スペース バーを押すと候補が消えてしまいます。

たとえば、「fast」と入力すると正常に動作し、「fast」と入力すると、提案が表示されなくなります。

私は and を使用してEdge N Gramsおり、ここここmatch_phrase_prefixの例に従って構築しています。タイトルとコンテンツを除くすべてのフィールドをキャンセルするために、 include_in_all: false を使用したフィールドの場合。小さなデータセットでテストしていて、複数の単語の提案を生成するのに十分なトークン化された用語がないという理由だけで考え始めています。以下の関連するコードを見て、どこが間違っているのか教えてください。_allmatch_phrase_prefix

"analysis": {
"filter": {
 "autocomplete_filter": {
  "type": "edge_ngram",
  "min_gram": "1",
  "max_gram": "20",
  "token_chars": [
    "letter",
    "digit"
  ]
 }
},
"analyzer": {
  "autocomplete": {
    "type": "custom",
    "tokenizer": "whitespace",
    "filter": [
       "lowercase",
       "asciifolding",
       "autocomplete_filter"
    ]     
  },
  "whitespace_analyzer": {
    "type": "custom",
    "tokenizer": "whitespace",
    "filter": [
      "lowercase",
      "asciifolding"
      ]
4

1 に答える 1