匹配查询在Elasticsearch中包含正斜杠

时间:2018-09-05 10:23:34

标签: elasticsearch kibana

Elasticsearch版本:6.3.2

我在搜索包含正斜杠(/)的属性值时遇到问题。 索引就像:

{
  "day": 1/5/2018
},
{
  "day": 2/3/2017
},
{
  "day": 5/7/2018
}
...

现在我要搜索“ 1/5”并获取包含“ 1/5”的记录。

查询是:

  "query": {
    "bool": {
      "minimum_should_match": 1,
      "should": [
        {
          "match": {
            "day": "1/5*"
          }
        },
        {
          "query_string": {
            "query":  "*1/5*",
            "field": day
          }
        }
      ]
    }
  }

但是我有一个例外:

"Cannot parse '*1/5*': Lexical error at line 1, column 6.  Encountered: <EOF> after : \"/5*\"",

我尝试将1/5替换为1 \\ / 5,错误消失了,我可以得到一些结果,但是我不想要它们。

结果仅包含“ 1”或“ 5”,或者都不包含,如何获得包含“ 1/5”的结果?

非常感谢!

1 个答案:

答案 0 :(得分:0)

单个\用于JSON转义。要使其进入查询字符串,您需要对其进行两次转义: blabla \ / bla \ / bla \ / bla 要么 一斜杠 blabla / bla / bla / bla