Span Near Query Usage

edit

Fluent DSL example

edit
q
.SpanNear(sn => sn
    .Name("named_query")
    .Boost(1.1)
    .Clauses(
        c => c.SpanTerm(st => st.Field("field").Value("value1")),
        c => c.SpanTerm(st => st.Field("field").Value("value2")),
        c => c.SpanTerm(st => st.Field("field").Value("value3"))
    )
    .Slop(12)
    .InOrder(false)
    .CollectPayloads(false)
)

Object Initializer syntax example

edit
new SpanNearQuery
{
    Name = "named_query",
    Boost = 1.1,
    Clauses = new List<ISpanQuery>
    {
        new SpanQuery { SpanTerm = new SpanTermQuery { Field = "field", Value = "value1" } },
        new SpanQuery { SpanTerm = new SpanTermQuery { Field = "field", Value = "value2" } },
        new SpanQuery { SpanTerm = new SpanTermQuery { Field = "field", Value = "value3" } }
    },
    Slop = 12,
    InOrder = false,
    CollectPayloads = false
}

Example json output.

{
  "span_near": {
    "clauses": [
      {
        "span_term": {
          "field": {
            "value": "value1"
          }
        }
      },
      {
        "span_term": {
          "field": {
            "value": "value2"
          }
        }
      },
      {
        "span_term": {
          "field": {
            "value": "value3"
          }
        }
      }
    ],
    "slop": 12,
    "in_order": false,
    "collect_payloads": false,
    "_name": "named_query",
    "boost": 1.1
  }
}