Span near query

edit

Matches spans which are near one another. One can specify slop, the maximum number of intervening unmatched positions, as well as whether matches are required to be in-order. Here is an example:

resp = client.search(
    query={
        "span_near": {
            "clauses": [
                {
                    "span_term": {
                        "field": "value1"
                    }
                },
                {
                    "span_term": {
                        "field": "value2"
                    }
                },
                {
                    "span_term": {
                        "field": "value3"
                    }
                }
            ],
            "slop": 12,
            "in_order": False
        }
    },
)
print(resp)
response = client.search(
  body: {
    query: {
      span_near: {
        clauses: [
          {
            span_term: {
              field: 'value1'
            }
          },
          {
            span_term: {
              field: 'value2'
            }
          },
          {
            span_term: {
              field: 'value3'
            }
          }
        ],
        slop: 12,
        in_order: false
      }
    }
  }
)
puts response
const response = await client.search({
  query: {
    span_near: {
      clauses: [
        {
          span_term: {
            field: "value1",
          },
        },
        {
          span_term: {
            field: "value2",
          },
        },
        {
          span_term: {
            field: "value3",
          },
        },
      ],
      slop: 12,
      in_order: false,
    },
  },
});
console.log(response);
GET /_search
{
  "query": {
    "span_near": {
      "clauses": [
        { "span_term": { "field": "value1" } },
        { "span_term": { "field": "value2" } },
        { "span_term": { "field": "value3" } }
      ],
      "slop": 12,
      "in_order": false
    }
  }
}

The clauses element is a list of one or more other span type queries and the slop controls the maximum number of intervening unmatched positions permitted.