先行入力の提案のために、Elasticsearch にいくつかのドキュメントのインデックスを作成させようとしています。私が知る限り、Elasticsearch でのエッジ NGram 処理は、その下にある Lucene によって提供されます。残念ながら、この点に関する Lucene のドキュメントは、私には理解するのが非常に難しいことがわかっています。私が思いついた最高のものはhttps://gist.github.com/988923に基づいていますが、機能していないようです (これらの設定を使用したインデックスは、設定がなかったかのように、完全な単語の一致のみを返します)存在):
{
"settings":{
"index":{
"analysis":{
"analyzer":{
"typeahead_analyzer":{
"type":"custom",
"tokenizer":"edgeNGram",
"filter":["typeahead_ngram"]
}
},
"filter":{
"typeahead_ngram":{
"type":"edgeNGram",
"min_gram":1,
"max_gram":8,
"side":"front"
}
}
}
}
}
}
アナライザー、トークナイザー、およびフィルターがどのように連携するのか、まったくわかりません。フィルターが必要ですか? トークナイザーが必要ですか?ドキュメントを使用するためにインデックスを作成するときに、これらの設定を参照する必要がありますか? その下の Lucene が特定のインデックスに使用している設定を確認するにはどうすればよいですか? これをデバッグするにはどうすればよいですか? ヘルプ :-)