regex - Elasticsearch regexp查询未找到结果

标签 regex elasticsearch

建立正确的查询时出现问题。我有一个带有以下映射的字段“ids”的索引:

"ids" : {
  "type" : "text",
  "fields" : {
    "keyword" : {
      "type" : "keyword",
      "ignore_above" : 256
    }
  }
}

示例内容可能如下所示:
10,20,30

这是ID列表。现在,我想使用多个可能的ID进行查询,并希望进行析取(OR),所以我决定使用正则表达式:
{
    "query" : {
        "bool" : {
            "must" : [
                {
                    "query_string" : {
                        "query" : "Test"
                    }
                },
                {
                   "regexp" : {
                       "ids" : {
                            "value" : "10031|20|10038",
                            "boost" : 1
                        }
                    }
                }
            ]
        }
    },
    "size" : 10,
    "from" : 0
}

查询已成功执行,但没有结果。我希望找到3个结果。

最佳答案

如果要获得10031或20或10038,则需要添加括号。
更改“10031 | 20 | 10038” =>“(10031 | 20 | 10038)”

关于regex - Elasticsearch regexp查询未找到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46471352/

相关文章:

javascript - 查找两个字符串值中单词的常见出现次数

java - java中字符代码0的正则表达式

elasticsearch - 流利的高可用性设置和副本

ubuntu - 访问在 ubuntu VM 上运行的 Elasticsearch 的其余 API 时,对等方重置连接

python - 在 python 中将 Elasticsearch 查询转换为 Elasticsearch-dsl

regex - 使用 sed 或 awk 拆分数据

ruby - 我可以使用什么正则表达式从 Ruby 中的 url 获取域名?

python - Sympy:使用 Wild 符号替换

elasticsearch - 填充字段时映射器解析异常

elasticsearch - 滚动重启时集群是否拒绝查询?