跨度查询

  • 等同于 term查询,但用于其它跨度查询。

  • 在前N个位置接受其它跨度查询。

  • 在指定距离内接受其它跨度查询,并且可以是以相同的顺序。

  • 将多个跨度查询组合起来,并返回任何匹配的文档。

  • 包含其它跨度查询,并排除匹配的文档。

  • 接受一个跨度查询列表,但只返回于两个条件都匹配的文档。

  • 只要跨度落在由其它跨度范围中,就会返回一个跨度查询的结果。

SpanTerm查询

spanTermQuery(
        "user",
        "kimchy");

SpanMulti查询

spanMultiTermQueryBuilder(
        //支持任何继承MultiTermQueryBuilder的类。例如:FuzzyQueryBuilder、PrefixQueryBuilder、RangeQueryBuilder、RegexpQueryBuilder或WildcardQueryBuilder
        prefixQuery("user", "ki"));

SpanFirst查询

spanFirstQuery(
        spanTermQuery("user", "kimchy"),
        //最大位置
        3
    );

SpanNear查询

spanNearQuery(
        spanTermQuery("field","value1"),
        //不匹配的最大数量
        12)
            .addClause(spanTermQuery("field","value2"))
            .addClause(spanTermQuery("field","value3"))
            //是否按照顺序进行匹配
            .inOrder(false);

SpanOr查询

查看 Span Or Query

spanOrQuery(spanTermQuery("field","value1"))
    .addClause(spanTermQuery("field","value2"))
    .addClause(spanTermQuery("field","value3"));

SpanNot查询

spanNotQuery(
        spanTermQuery("field","value1"),
        spanTermQuery("field","value2"));

SpanContaining查询

spanContainingQuery(
        spanNearQuery(spanTermQuery("field1","bar"), 5)
            .addClause(spanTermQuery("field1","baz"))
            .inOrder(true),
        spanTermQuery("field1","foo"));

SpanWithin查询

spanWithinQuery(
        spanNearQuery(spanTermQuery("field1", "bar"), 5)
            .addClause(spanTermQuery("field1", "baz"))
            .inOrder(true),
        spanTermQuery("field1", "foo"));