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.