匹配查询

尽管全文查询将在执行之前分析查询语句,但匹配查询会按照存储在倒排索引中的确切词进行操作。

这些查询语句通常使用数字、日期和枚举等结构化数据,而不是全字符串字段。并且也允许在分析过程之前使用低级查询。

这一组中的查询有:

  • 根据指定词查询文档。

  • 根据多个指定词查询文档。

  • 根据范围(日期、数字或字符串)查询文档。

  • 根据字段是否存在查询文档。

  • 根据前缀查询文档。

  • 根据通配符查询文档,支持单字符匹配(?)和多字符匹配(*)。

  • 根据正则表达式查询文档。

  • 根据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"
);

wildcard查询

QueryBuilder qb = wildcardQuery("user", "k?mc*");

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