ElasticSearch(十一) Term level Queries JAVA API

一、term query 精确查询 不分词

termQuery(
        "name",   "kimchy");  

二、terms query  相当于 IN 查询

termsQuery("tags",  "blue", "pill"); 

三、range query  范围查询

rangeQuery("price")                                          
    .from(5)                                                 
    .to(10)                                                  
    .includeLower(true)                                      
    .includeUpper(false);  

rangeQuery("age")                                             
    .gte("10")                                                
    .lt("20");      

四、exists query  类似于SQL语句中的IS_NULL

exists 和 missing 过滤可以用于查找文档中是否包含指定字段或没有某个字段,类似于SQL语句中的IS_NULL条件. 

existsQuery("name");  


    "exists":   { 
        "field":    "title" 
    } 

这两个过滤只是针对已经查出一批数据来,但是想区分出某个字段是否存在的时候使用。

五、prefix query 前缀查询

prefixQuery(
        "brand",  "heine"); 

六、wildcard query 通配符查询

wildcardQuery(
        "user", "k?mch*");

七、regexp query  正则查询

regexpQuery(
        "name.first", "s.*y"); 

八、fuzzy query 近似查询

九、type query  类型查询

typeQuery("my_type");

十、ids query  指定ID查询

idsQuery("my_type", "type2").addIds("1", "4", "100");

idsQuery().addIds("1", "4", "100");
原文地址:https://www.cnblogs.com/xiaocandou/p/8119548.html