Java - Elasticsearch查询类型

来源:互联网 发布:淘宝超级店长是什么 编辑:程序博客网 时间:2024/06/11 11:11

查询类型

queryType

描述

后台代码样例

matchAllQuery

全匹配

QueryBuilder qb = matchAllQuery();

matchQuery

单个匹配

QueryBuilder qb = matchQuery(

    "name",

    "kimchy elasticsearch"

);

multiMatchQuery

多字段单值匹配

QueryBuilder qb = multiMatchQuery(

    "kimchy elasticsearch",

    "user","message"

);

wildcardQuery

模糊匹配

WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery("empname","*emp*");


复合查询类型

boolType

描述

后台代码样例

AND

BoolQueryBuilder subCodeQuery = QueryBuilders.boolQuery();

        WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery("empname","*emp*");

        WildcardQueryBuilder queryBuilder2 = QueryBuilders.wildcardQuery("gender","*male*");

        subCodeQuery.must(queryBuilder1);

        subCodeQuery.must(queryBuilder2);

OR

类同(subCodeQuery.should)


分页
通过from和size参数进行分页。From定义查询结果开始位置,size定义返回的hits(一条hit对应一条记录)最大数量。

RestFul样例

后台代码样例

{

    "from" : 0,"size": 10,

    "query" : {

        "term" : { "user":"kimchy" }

    }

}

SearchResponse response = client.prepareSearch("dept")

                .setTypes("employee")

                .setQuery(queryBuilder)

                .setFrom(0).setSize(2)

                .execute()

                .actionGet();



0 0
原创粉丝点击