elasticsearch:通过一个唯一请求替换should容器中的多个术语请求

时间:2017-03-31 13:26:43

标签: elasticsearch

我想在一个数字数组上发出请求,尽管多次使用不同的搜索词重复相同的术语请求

这是我的请求,在容器中有三个不同的术语查询

POST /test_index/film_type/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "should": [
              {
                "term": {
                  "id_film": {
                    "value": 4
                  }
                }
              },
              {
                "term": {
                  "id_film": {
                    "value": 5
                  }
                }
              },
              {
                "term": {
                  "id_film": {
                    "value": 45
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}

你知道怎么做吗?

1 个答案:

答案 0 :(得分:3)

您可以查看Simple Query String Query

小例子:

POST test/test/1
{
  "film-id": 1
}

POST test/test/2
{
  "film-id": 2
}

POST test/test/3
{
  "film-id": 3
}


GET test/_search
{
  "query": {
    "simple_query_string": {
      "query": "1 | 2",
      "fields": [
          "film-id"
        ]
    }
  }
}

结果:

"hits": {
    "total": 2,
    "max_score": 1,
    "hits": [
      {
        "_index": "test",
        "_type": "test",
        "_id": "2",
        "_score": 1,
        "_source": {
          "film-id": 2
        }
      },
      {
        "_index": "test",
        "_type": "test",
        "_id": "1",
        "_score": 1,
        "_source": {
          "film-id": 1
        }
      }
    ]
  }
}

希望这有帮助!