美好的一天:
我有一个字符串字段,我正在针对以下项进行匹配查询:
{
query : {
match: {
"grounds": "one"
}
}
}
当我执行此查询时,它可以工作,但是,如果我输入
{
query : {
match: {
"grounds": "one vote"
}
}
}
它不返回任何值。请记住,为grounds
编制索引的是一个。我对ElasticSearch的工作方式的理解是,它将在查询期间标记每个单词,并与逆索引匹配。如果我错了,请指教。
已更新
我对地面的映射定义是:
"grounds": {
"type": "text",
"analyzer": "synonym_analyzer"
},
我如何定义自定义synonym_analyzer
是这样的:
client.CreateIndex(index, c => c
.Settings(s => s.Analysis(
a => a.Analyzers(an => an
.Custom("synonym_analyzer", ca => ca
.Tokenizer("standard")
.Filters("synonym","lowercase")
)
).TokenFilters(t => t.Synonym("synonym", ss => synonyms))
谢谢。