10

私はエラスティック検索を初めて使用し、空白アナライザーを使用して補完提案者のデモを1つ作成しようとしています。

Whitespace Analyzerのドキュメントに従って、空白文字に遭遇するたびにテキストを単語に分割します。だから私の質問は、完了サジェスタでも機能しますか?

したがって、補完候補のプレフィックス「ela」について は、「Hello Elastic Search」としての出力が期待されます。

これに対する簡単な解決策は、マルチフィールド入力を次のように追加することです。

"suggest": {
         "input": ["Hello","elastic","search"]
 }

しかし、これが解決策である場合、アナライザーを使用する意味は何ですか? アナライザーは補完提案で意味がありますか?

私のマッピング:

{
  "settings": {
    "analysis": {
      "analyzer": {
        "completion_analyzer": {
          "type": "custom",
          "filter": [
            "lowercase"
          ],
          "tokenizer": "whitespace"
        }
      }
    }
  },
  "mappings": {
            "my-type": {
                "properties": {
                    "mytext": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "suggest": {
                        "type": "completion",
                        "analyzer": "completion_analyzer",
                        "search_analyzer": "completion_analyzer",
                        "max_input_length": 50
                    }
                }
            }
        }
}

私の文書:

{
    "_index": "my-index",
    "_type": "my-type",
    "_id": "KTWJBGEBQk_Zl_sQdo9N",
    "_score": 1,
    "_source": {
        "mytext": "dummy text",
        "suggest": {
                 "input": "Hello elastic search."
        }
    }
}

検索リクエスト:

{
    "suggest": {
        "test-suggest" : {
        "prefix" :"ela", 
        "completion" : { 
            "field" : "suggest",
            "skip_duplicates": true
        }
        }
    }
}

この検索で​​は正しい出力が返されませんが、prefix = 'hel' を使用すると、正しい出力が得られます: "Hello elastic search."

簡単に言えば、ホワイトスペースアナライザーは補完候補で動作しますか? 方法があれば、教えてください。

PS:私はすでにこのリンクを探していますが、有用な答えが見つかりませんでした.

ElasticSearch 完了サジェスト標準アナライザーが機能しない

この補完候補に使用する Elasticsearch Analyzer はどれですか?

このリンクは便利な単語指向の補完サジェスター (ElasticSearch 5.x)だと思います。しかし、彼らは補完提案を使用していません。

前もって感謝します。

ジミー

4

2 に答える 2