elaticsearch找到多个确切的值 - 如何在值中转义冒号

时间:2017-08-24 22:53:29

标签: elasticsearch escaping

对于单值匹配,

{
  "match" : {
    "price" : 20
  }
}

如果搜索值为:,例如“地址:1史密斯街”,我可以逃避:

{
  "match" : {
    "address" : "address\\:1 smith street"
  }
}

上述查询将有效。

但是当我尝试找到多个确切的值而不是“匹配”时,我需要使用“条款”

https://www.elastic.co/guide/en/elasticsearch/guide/master/_finding_multiple_exact_values.html

{
  "terms" : {
    "price" : [20, 30]
  }
}

然后当搜索值带有:in,escape:将无法正常工作

以下查询都无效

{
  "terms" : {
    "residence" : ["address:1 Smith Street", "address:2 David Road"]
  }
}

{
  "terms" : {
    "residence" : ["address\\:1 Smith Street", "address\\:2 David Road"]
  }
}

请帮忙。

1 个答案:

答案 0 :(得分:1)

根据Val,bool /应该使用多个匹配查询。

57-Tu-yyyy