сравнить два массива с одним подмножеством другого в elasticsearch

У меня есть нижеприведенный пакет документов. Есть ли способ поиска всех документов, имеющих категории "61" и "64" (документы 1,2,3,5), не больше и не меньше?

  {"id": 1, "regions" : ["61", "64"]}
    {"id": 2, "regions" : ["61", "63", "64"]}
    {"id": 3, "regions" : ["67", "64", "61"]}
    {"id": 4, "regions" : ["61"]}
    {"id": 5, "regions" : ["61", "64"]}

Tnx заранее


person Rockon    schedule 12.06.2016    source источник
comment
Пожалуйста, дайте мне знать, если мой ответ работает для вас   -  person Priyansh Goel    schedule 13.06.2016


Ответы (2)


Попробуй это:

{
  "query": {
    "match": {
      "regions": {
        "query": "61 64",
        "operator": "AND"
      }
    }
  }
}
person Priyansh Goel    schedule 12.06.2016

Попробуйте это,

curl -u uname:'pword' -XGET 'host:port/index/type/_search?' -д'

{
  "filter": {
    "and": [
      {
        "in": {
          "regions": [
            "61"
          ]
        }
      },
      {
        "in": {
          "regions": [
            "64"
          ]
        }
      }
    ]
  }
}'
person Sanura Hettiarachchi    schedule 12.06.2016