我会简化我的问题。假设我有一个索引包含我用Kibana创建的3个文档:
PUT / test / vendors / 1{ “类型”:“医生”, “名字”:“菲尔”, “works_in”:[ { “地方”:“……
我假设那些领域 type 和 place 是的 文本 输入 标准分析仪 。
type
place
为了管理单数/复数,你要找的是什么 雪球令牌过滤器 您需要添加到映射中。
您提到过的另一个要求是: physicians 也应该等同于 doctor ,你需要利用 同义词令牌过滤器
physicians
doctor
以下是您的映射应该如何。请注意,我刚刚添加了分析器 type 。您可以对映射到其他字段进行类似的更改。
PUT <your_index_name> { "settings":{ "analysis":{ "analyzer":{ "my_analyzer":{ "tokenizer":"standard", "filter":[ "lowercase", "my_snow", "my_synonym" ] } }, "filter":{ "my_snow":{ "type":"snowball", "language":"English" }, "my_synonym":{ "type":"synonym", "synonyms":[ "docs, physicians, health professionals, doctor" ] } } } }, "mappings":{ "mydocs":{ "properties":{ "type":{ "type":"text", "analyzer":"my_analyzer" }, "place":{ "type":"text", "analyzer":"my_analyzer" } } } } }
请注意我是如何在映射中添加同义词的,而不是我建议您在文本文件中添加同义词,如下所示
{ "type":"synonym", "synonyms_path" : "analysis/synonym.txt" }
根据我分享的链接,它提到了这一点 上面配置了同义词过滤器,其路径为analysis / synonym.txt(相对于配置位置)。
希望能帮助到你!