Elasticsearch regexp查询找不到任何结果

时间:2017-09-28 14:13:13

标签: 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个结果。

1 个答案:

答案 0 :(得分:0)

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