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");