Elasticsearch java API (25)查询 DSL Span(跨度)查询

跨度查询编辑

跨度��询是低级位置查询提供专家控制的秩序和接近指定的条款。这些通常是用于实现特定查询法律文件或专利。

跨度查询不能混合(除了non-span查询 span_multi查询)。

这组查询:

span_term 查询
的等效  term查询 但与其他跨度查询使用。
span_multi 查询
包装  term,  range,  prefix,  wildcard,  regexp ,或  fuzzy 查询。
span_first 查询
接受另一个跨度查询的匹配必须出现在第N的位置。
span_near 查询
接受多个跨度查询的匹配必须在指定的距离,并可能在相同的顺序。
span_or 查询
结合多个跨度查询,返回文档的匹配任何指定的查询。
span_not 查询
包装另一个跨度查询,排除了任何文档匹配查询。
span_containing 查询
接受一个跨度查询列表,但是只返回那些跨越也匹配第二个跨度查询。
span_within 查询
单孔查询返回的结果只要是它的跨度中返回的跨越其他跨度查询的列表。

跨词查询编辑

看到跨词查询

QueryBuilder qb = spanTermQuery(
    "user",        //1                              
    "kimchy"          //2                          
);

价值

跨多词查询编辑

看到跨多词查询

QueryBuilder qb = spanMultiTermQueryBuilder(
    prefixQuery("user", "ki")         //1          
);

可以是任何builder扩展吗 MultiTermQueryBuilder类。例如: FuzzyQueryBuilder,PrefixQueryBuilder, RangeQueryBuilder, RegexpQueryBuilder WildcardQueryBuilder.

跨越第一个查询编辑

看到跨越第一个查询

QueryBuilder qb = spanFirstQuery(
    spanTermQuery("user", "kimchy"),      //1      
    3                                        //2   
);

查询

马克斯结束位置

跨度查询附近编辑

看到跨度查询附近

QueryBuilder qb = spanNearQuery()
    .clause(spanTermQuery("field","value1"))    //1
    .clause(spanTermQuery("field","value2"))    //2
    .clause(spanTermQuery("field","value3"))    //3
    .slop(12)                                   //4
    .inOrder(false)                             //5
    .collectPayloads(false);                    //6

跨词查询

污水因素:干预无与伦比的头寸的最大数量

是否需要按次序的匹配

收集有效载荷或不

跨度或查询编辑

看到跨度或查询

QueryBuilder qb = spanOrQuery()
    .clause(spanTermQuery("field","value1"))    //1
    .clause(spanTermQuery("field","value2"))    //2
    .clause(spanTermQuery("field","value3"));   //3

跨词查询

跨度不查询编辑

看到跨度不查询

QueryBuilder qb = spanNotQuery()
    .include(spanTermQuery("field","value1"))   //1
    .exclude(spanTermQuery("field","value2"));  //2

跨度查询的匹配过滤

这些返回跨度查询的匹配不能重叠

跨度包含查询编辑

看到跨度包含查询

QueryBuilder qb = spanContainingQuery()
    .little(spanTermQuery("field1","foo"))      //1
    .big(spanNearQuery()                        //2
        .clause(spanTermQuery("field1","bar"))
        .clause(spanTermQuery("field1","baz"))
        .slop(5)
        .inOrder(true)
    );

little部分

big部分

跨度内查询编辑

看到跨度内查询

QueryBuilder qb = spanWithinQuery()
    .little(spanTermQuery("field1", "foo"))        //1         
    .big(spanNearQuery()                              //2      
                    .clause(spanTermQuery("field1", "bar"))
                    .clause(spanTermQuery("field1", "baz"))
                    .slop(5)
                    .inOrder(true)
    );

little部分

big部分






  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值