gpt4 book ai didi

elasticsearch - '='符号在正则表达式elasticsearch过滤器中不起作用

转载 作者:行者123 更新时间:2023-12-02 22:30:50 25 4
gpt4 key购买 nike

我想使用正则表达式从索引中过滤数据。

数据将以特定字段中的句子形式出现。数据中可能还包含一些特殊字符和其中的'='。

以下是索引详细信息:

PUT / eventsdata {
"mappings": {
"EventDataType": {
"properties": {

"id": {
"type": "string",
"index": "not_analyzed"
},
"name": {
"type": "string",
"analyzer": "std_with_spaces"
},
"description": {
"type": "string",
"analyzer": "std_with_spaces"
}
}
}
},
"settings": {
"number_of_shards": 1,
"analysis": {
"analyzer": {
"std_with_spaces": {
"type": "keyword"
}
}
}
}

}

以下是我的索引中可用的示例数据:
id - 12
name - Java Application
description- Process (AppName=MyApplication) is not running in the system.

以下是我要运行的查询
GET /eventsdata/EventDataType/_search
{
"query": {
"filtered": {
"query": {
"regexp": {
"description": {
"value": ".*AppName=MyApplication.*"
}
}

}

}
}
}

但这没有给出任何结果。下面是引用输出
{
"took": 19,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}

如果我删除'='符号并使用普通单词(myapplication)进行过滤,则会得到结果。

请帮忙。

最佳答案

您对此索引有什么映射?

如果分析了字段描述,则将AppName = MyApplication划分为 token 。
如果您将描述视为未分析,则此查询将起作用。或者,您可以复制此字段(多字段)以也被索引为未分析。然后搜索。

您可以在此处阅读如何制作多字段:https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-fields.html

关于elasticsearch - '='符号在正则表达式elasticsearch过滤器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39867518/

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