私はエラスティック検索を初めて使用し、空白アナライザーを使用して補完提案者のデモを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)だと思います。しかし、彼らは補完提案を使用していません。
前もって感謝します。
ジミー