在ElasticSearch中,如何组合`span_near`和`term`?

时间:2015-08-25 16:18:51

标签: elasticsearch

以下查询返回匹配:

{
  "query": {
    "span_near": {
      "clauses": [
        {
          "span_term": {
            "file.contents": "charstreams"
          }
        }
      ],
      "slop": 0,
      "in_order": true
    }
  }
}

以下内容如下:

{
  "query": {
    "filtered": {
      "filter": {
        "term": {
          "file.extension": "java"
        }
      }
    }
  }
}

将两者结合起来以满足两个条件的查询是什么?

1 个答案:

答案 0 :(得分:1)

{
  "query": {
    "filtered": {
      "query": {
        "span_near": {
          "clauses": [
            {
              "span_term": {
                "file.contents": "charstreams"
              }
            }
          ],
          "slop": 0,
          "in_order": true
        }
      },
      "filter": {
        "term": {
          "file.extension": "java"
        }
      }
    }
  }
}

此外,由于您将slop设置为0in_order设置为true,因此您可能需要考虑使用https://www.elastic.co/guide/en/elasticsearch/guide/current/phrase-matching.html。< / p>