提问人:d7d1cd 提问时间:11/16/2023 最后编辑:d7d1cd 更新时间:11/17/2023 访问量:38
ElasticSearch 中的奇怪搜索
Strange search in ElasticSearch
问:
我在elasticsearch中有某种数据集。执行以下查询时
curl -XPOST 'localhost:9200/_search?pretty' -d
'{
"query": {
"query_string": {
"fields": ["258"],
"query": "*toco*"
}
}
}'
我得到一个结果,其中字段 258 是 [PhotoComment]。但是,如果将查询更改为:
curl -XPOST 'localhost:9200/_search?pretty' -d
'{
"query": {
"query_string": {
"fields": ["258"],
"query": "*omme*"
}
}
}'
则搜索结果为空。
解释为什么会这样?
答:
0赞
d7d1cd
11/17/2023
#1
我设法找到了这种奇怪行为的原因。它位于分析中使用的过滤器之一中。设置如下:
"analysis": {
"analyzer": {
"default": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"english_stemmer",
]
}
},
"filter": {
"english_stemmer": {
"type": "snowball",
"language": "English"
}
}
}
调用分析器显示,过滤器“english_stemmer”后面的文本“[PhotoComment]”变为“photocom”,文本“*omme*”变为“omm”。因此,后者不包括在“photocom”中,并且找不到记录。
我没有找到解释为什么“english_stemmer”过滤器会以这种方式运行。
评论