匹配查询
尽管全文查询将在执行之前分析查询语句,但匹配查询会按照存储在倒排索引中的确切词进行操作。
这些查询语句通常使用数字、日期和枚举等结构化数据,而不是全字符串字段。并且也允许在分析过程之前使用低级查询。
这一组中的查询有:
-
根据指定词查询文档。
-
根据多个指定词查询文档。
-
根据范围(日期、数字或字符串)查询文档。
-
根据字段是否存在查询文档。
-
根据前缀查询文档。
-
根据通配符查询文档,支持单字符匹配(?)和多字符匹配(*)。
-
根据正则表达式查询文档。
-
根据模糊相似词查询文档,模糊度的标准是 莱文斯坦距离 1或2。
-
根据type查询文档。
-
根据type和IDs查询文档。
term查询
查看 Term Query
QueryBuilder qb = termQuery(
//字段名
"name",
//查询值
"kimchy"
);
terms查询
查看 Terms Query
QueryBuilder qb = termsQuery(
//字段名
"tags",
//查询值
"blue", "pill");
range查询
查看 Range Query
QueryBuilder qb = rangeQuery(
//字段名
"price")
//最小值
.from(5)
//最大值
.to(10)
//是否包含最小值
.includeLower(true)
//是否包含最大值
.includeUpper(false);
// 一个简单写法,lt小于,ltd小于等于;gt大于,gte大于等于
QueryBuilder qb = rangeQuery("age")
.gte("10")
.lt("20");
exists查询
查看 Exists Query
QueryBuilder qb = existsQuery("name");
prefix查询
查看 Prefix Query
QueryBuilder qb = prefixQuery(
//字段名
"brand",
//前缀
"heine"
);
regexp查询
查看 Regexp Query
QueryBuilder qb = regexpQuery(
//字段名,允许类似JavsScript的层级关系
"name.first",
//正则表达式
"s.*y");
fuzzy查询
查看 Fuzzy Query
QueryBuilder qb = fuzzyQuery(
"name",
"kimzhy"
);
type查询
查看 Type Query
QueryBuilder qb = typeQuery("my_type");
ids查询
查看 Ids Query
QueryBuilder qb = idsQuery("my_type", "type2")
.addIds("1", "4", "100");
// type是可选项
QueryBuilder qb = idsQuery()
.addIds("1", "4", "100");