1 回答
TA贡献2019条经验 获得超9个赞
这是由于使用了snowball
词干的令牌过滤器而发生的,请参阅官方雪球文档以获取更多信息。
我使用您的设置创建了相同的分析器,以查看为您的文本生成的标记,因为当索引标记与搜索词标记匹配时,搜索就会发生。
ES 提供了很好的 REST api,你可以很容易地重现这个问题:
使用您的设置创建索引
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"snowball",
"stop"
]
}
}
}
},
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "my_analyzer"
}
}
}
}
创建索引后,您可以使用分析 API查看为您的文本生成的标记。
POST http://{{hostname}}:{{port}}/{{index-name}}/_analyze
{
"analyzer": "my_analyzer",
"text": "Sales inquiries generated"
}
{
"tokens": [
{
"token": "sale",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "inquiri",
"start_offset": 6,
"end_offset": 15,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "generat",
"start_offset": 16,
"end_offset": 25,
"type": "<ALPHANUM>",
"position": 2
}
]
}
您可以看到所有与您的搜索查询匹配的标记都是相同的,因此您将获得其他搜索词的结果,这意味着在查询而不是原始查询时,您使用的是文本字段的关键字部分
添加回答
举报