Elastic Search 小写分析器没有 return 搜索结果
Elastic Search Lowercase analyser does not return search result
我有一个基于文本的索引,如下所示。我正在尝试基于用户输入的令牌维护精确搜索和模糊搜索。虽然基于文本的搜索在术语搜索方面工作正常(部分搜索),但它 returns 数据 iff 大小写相同。
我确实尝试添加一个基于小写过滤器的分析器,但它没有帮助。我可以在这里做什么?
映射:
"project_title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"projectabstract": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
基于小写分析器的新索引:
PUT /project_term_search_text_analyzer
{
"settings": {
"analysis": {
"analyzer": {
"rebuilt_standard": {
"tokenizer": "standard",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {"project_title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"projectabstract": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},}
我应该如何更新我的索引以在这两种情况下工作。
您需要使用适用于关键字字段的 normalizer。您还可以自定义规范器,例如分析器,在 link 中您可以找到带有小写过滤器的相关示例,这将解决您的问题。
我有一个基于文本的索引,如下所示。我正在尝试基于用户输入的令牌维护精确搜索和模糊搜索。虽然基于文本的搜索在术语搜索方面工作正常(部分搜索),但它 returns 数据 iff 大小写相同。 我确实尝试添加一个基于小写过滤器的分析器,但它没有帮助。我可以在这里做什么?
映射:
"project_title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"projectabstract": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
基于小写分析器的新索引:
PUT /project_term_search_text_analyzer
{
"settings": {
"analysis": {
"analyzer": {
"rebuilt_standard": {
"tokenizer": "standard",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {"project_title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"projectabstract": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},}
我应该如何更新我的索引以在这两种情况下工作。
您需要使用适用于关键字字段的 normalizer。您还可以自定义规范器,例如分析器,在 link 中您可以找到带有小写过滤器的相关示例,这将解决您的问题。