0
オートコンプリート機能を作成しようとしていますが、動作していると思いますが、カスタムアナライザが奇妙な結果を返すことがあります。NESTカスタムアナライザNGramが正しい結果を返さない
var response = this.client.CreateIndex(
ElasticConfig.IndexName,
index => index
.Mappings(
ms => ms.Map<EmployeeDocument>(
m => m.Properties(
p => p
.Text(t => t.Name(n => n.EmpFirstName).Analyzer("auto-complete").Fields(ff => ff.Keyword(k => k.Name("keyword"))))
.Text(t => t.Name(n => n.pkEmpID).Analyzer("auto-complete").Fields(ff => ff.Keyword(k => k.Name("keyword"))))
.Text(t => t.Name(n => n.Description).Analyzer("auto-complete").Fields(ff => ff.Keyword(k => k.Name("keyword")))))))
.Settings(
f => f.Analysis(
analysis => analysis
.Tokenizers(
tokenizers =>
tokenizers
.EdgeNGram("ngram", t => t.MinGram(3).MaxGram(5)))
.Analyzers(
analyzers => analyzers.Custom(
"auto-complete",
a => a.Filters(new List<string> { "lowercase", "ngram" }).Tokenizer("standard"))))));
私は
127.0.0.1:9200/default-index/_analyze?text=dan&analyzer=auto-complete
を呼び出す場合、私は、私は上記のように3に私のMinGramを設定
{
"tokens": [
{
"token": "d",
"start_offset": 0,
"end_offset": 3,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "da",
"start_offset": 0,
"end_offset": 3,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "a",
"start_offset": 0,
"end_offset": 3,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "an",
"start_offset": 0,
"end_offset": 3,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "n",
"start_offset": 0,
"end_offset": 3,
"type": "<ALPHANUM>",
"position": 0
}
]
}
は間違いなく間違って取得するには、私は設定をしないのですか?