我有一个synonyms.txt
auto, vehicle => car
在我的设置中:
{
"analysis": {
"analyzer": {
"def_analyzer": {
"tokenizer": "whitespace",
"filter": ["lowercase", "synonym"]
}
},
"filter": {
"synonym": {
"type": "synonym",
"synonyms_path": "synonyms.txt"
}
}
}
}
在文档中,我有一行的值为“car”
然后在查询中,我应用这个分析器和模糊性,并尝试使用同义词“vehicle”进行搜索,其中有一个小的错别字:
title: {
query: 'vhicle',
operator: 'OR',
fuzziness: 'auto',
analyzer: 'def_analyzer',
},
结果为0。尽管如果编辑查询以使用同义词“vehicle”,它将返回“car”。如果你写一些像“crr”的东西,它会找到“car”-所以模糊性不适用于这里的同义词出于某种原因。仅用于索引中的原始值。
1条答案
按热度按时间q8l4jmvw1#
search_analyzer可以帮助您解决此问题。您可以在Map中同时使用
analyzer
和search_analyzer
。逻辑如下:
1.检查查询并添加模糊性
查询
vhicle
变为vehicle
2.检查同义词表
vehicle
变为car