【发布时间】:2026-02-04 04:15:01
【问题描述】:
我是 ELlasticsearch 的新手,在 ES 返回分析字段的不匹配结果方面需要您的帮助。 我有一个自定义分析器如下:
"analyzer": {
"testing_analyzer": {
"type": "custom",
"char_filter": "html_strip",
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding",
"snowball",
"stop"
]
},
"testing_search_analyzer": {
"type": "custom",
"char_filter": "html_strip",
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding"
]
}
}
我已将此分析器设置为索引和搜索中的字段,如下所示。
"name":
{
"type": "string",
"analyzer": "testing_analyzer",
"search_analyzer": "testing_search_analyzer"
}
但是当搜索名称“università di bologna”时,它返回的第一个结果记录具有相同的匹配,但其他一些记录不匹配(下面的结果中的第二个记录):
记录1:
[ "Università di Bologna", "University of Bologna", "CNR", "Università di Pisa", "University of Pisa", "Mineraria e Delle Tecnologie Ambientali" ]
记录2:
[ "University of Salerno", "Università di Salerno" ]
查询:
{
"fields": [
"doc_id",
"name"
],
"query": {
"match": {
"name": "Università di bologna"
}
}
}
有什么帮助吗?!
【问题讨论】:
-
testing_search_analyzer是如何定义的? -
"testing_search_analyzer": { "type": "custom", "char_filter": "html_strip" , "tokenizer": "standard", "filter": [ "lowercase", "asciifolding"] },
-
你也可以显示查询吗?
-
curl -XGET 'localhost:9200/users/_search?pretty=true' -d ' { "fields" : ["doc_id" , "name"], "query": { "match": { "name": "Università迪博洛尼亚" } } }'
标签: elasticsearch