gpt4 book ai didi

regex - 如何在ElasticSearch中的URL上执行RegExp查询?

转载 作者:行者123 更新时间:2023-12-02 23:58:23 26 4
gpt4 key购买 nike

我正在尝试在ElasticSearch中执行(我认为是)简单的RegExp查询,但是对于我来说,我一辈子都无法使用它。这里说查询

{
"query": {
"regexp":{
"request_url": "/somepage/[0-9]+/[a-z]+"
}
}
}

该查询似乎中断的地方是当我包含正斜杠 /字符时。没有正斜杠,我得到每个单独部分的结果。

我只尝试了一个斜线 /,尝试使用 \/\\/对其进行转义。我将查询简化为 /somepage\\/somepage,什么都没有。

我一直在Google上进行大量搜索,但似乎找不到一致的答案。我认为也许ElasticSearch在RegExp查询中不支持 / ...?通过查看文档,我知道它不是保留字符。

可能与该字段的数据类型有关吗?
"request_url": {
"type": "text",
"norms": false,
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},

查看文档, text明确表示它分析并标记数据。所以我希望它可能会删除 /字符?我也尝试对 keyword字段进行查询,但该查询不起作用。

那么,有什么建议吗? ElasticSearch可以实际满足我的需求吗?谢谢。

最佳答案

我的建议:

  • \\\\/如果将其视为字符串,它将在JSON中变为\\/,同时将成为\/
  • \x2f及其衍生物=> \\x2f\\\\x2f
  • 关于regex - 如何在ElasticSearch中的URL上执行RegExp查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51362930/

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