gpt4 book ai didi

elasticsearch - Elasticsearch 5-文本/关键字字段中不区分大小写的精确匹配

转载 作者:行者123 更新时间:2023-12-02 22:19:01 28 4
gpt4 key购买 nike

我在ES的文档中有一个entity_name字段,这是一个文本/关键字字段,其映射如下:

{
"my_index": {
"mappings": {
"my_type": {
"properties": {
"entity_name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}

我要实现的目标是建立一个查询,以在其 entity_name字段中获取包含“ABC”的文档(例如“ABC Company”,“company abc”),但应排除对大小写不敏感的“ABC”的文档(例如“ABC”,“abc”,“Abc”)。

我已经尝试过类似的查询:
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"entity_name": "ABC"
}
}
],
"must_not": [
{
"term": {
"entity_name.keyword": "ABC"
}
}
]
}
}
}

但是它不能解决不区分大小写的问题。

任何帮助将不胜感激。提前致谢 :)

最佳答案

尝试向其中添加标记器,以帮助过滤搜索

{
"my_index": {
"settings": {
"analysis": {
"analyzer": {
"case_insensitive": {
"tokenizer": "keyword",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"my_type": {
"properties": {
"entity_name": {
"type": "text",
"analyzer": "case_insensitive",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}

https://www.elastic.co/guide/en/elasticsearch/reference/5.4/analysis-tokenizers.html

关于elasticsearch - Elasticsearch 5-文本/关键字字段中不区分大小写的精确匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46108872/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com