Span within query

edit

Returns matches which are enclosed inside another span query. Here is an example:

resp = client.search(
    query={
        "span_within": {
            "little": {
                "span_term": {
                    "field1": "foo"
                }
            },
            "big": {
                "span_near": {
                    "clauses": [
                        {
                            "span_term": {
                                "field1": "bar"
                            }
                        },
                        {
                            "span_term": {
                                "field1": "baz"
                            }
                        }
                    ],
                    "slop": 5,
                    "in_order": True
                }
            }
        }
    },
)
print(resp)
response = client.search(
  body: {
    query: {
      span_within: {
        little: {
          span_term: {
            "field1": 'foo'
          }
        },
        big: {
          span_near: {
            clauses: [
              {
                span_term: {
                  "field1": 'bar'
                }
              },
              {
                span_term: {
                  "field1": 'baz'
                }
              }
            ],
            slop: 5,
            in_order: true
          }
        }
      }
    }
  }
)
puts response
const response = await client.search({
  query: {
    span_within: {
      little: {
        span_term: {
          field1: "foo",
        },
      },
      big: {
        span_near: {
          clauses: [
            {
              span_term: {
                field1: "bar",
              },
            },
            {
              span_term: {
                field1: "baz",
              },
            },
          ],
          slop: 5,
          in_order: true,
        },
      },
    },
  },
});
console.log(response);
GET /_search
{
  "query": {
    "span_within": {
      "little": {
        "span_term": { "field1": "foo" }
      },
      "big": {
        "span_near": {
          "clauses": [
            { "span_term": { "field1": "bar" } },
            { "span_term": { "field1": "baz" } }
          ],
          "slop": 5,
          "in_order": true
        }
      }
    }
  }
}

The big and little clauses can be any span type query. Matching spans from little that are enclosed within big are returned.