1. 程式人生 > >Elasticsearch java api 常用查詢方法QueryBuilder構造舉例

Elasticsearch java api 常用查詢方法QueryBuilder構造舉例

舉例 div detail lang 模糊查詢 dna true builder earch

轉載:http://m.blog.csdn.net/u012546526/article/details/74184769

Elasticsearch java api 常用查詢方法QueryBuilder構造舉例

環境

Elasticsearch版本

5.1.1

pom

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>5.1.1</version
> </dependency>

Elasticsearch索引方式

數字

{
    "type": "long"
}

字符串

{
    "type": "text",
    "fields": {
        "keyword": {
            "type": "keyword",
            "ignore_above": 256
        }
    }
}

精確查詢

以下字段名用${fieldName}代替,具體值用${fieldValue}代替

數字

單個

QueryBuilder qb1 = QueryBuilders.termQuery("${fieldName}", "${fieldValue}");

批量

QueryBuilder qb1 = QueryBuilders.termsQuery("${fieldName}", "${fieldValues}");

字符串

單個

QueryBuilder qb1 = QueryBuilders.termQuery("${fieldName}.keyword", "${fieldValue}");

批量

QueryBuilder qb1 = QueryBuilders.termsQuery("${fieldName}.keyword", "${fieldValues}");

模糊查詢

數字

數字查詢都為精確查詢

字符串

QueryBuilder qb1 = QueryBuilders.moreLikeThisQuery(new String[]{"${fieldName}"}, new String[]{"${fieldValue}"}, null);

範圍查詢

數字

閉區間查詢

QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").from(${fieldValue1}).to(${fieldValue2});

開區間查詢

QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").from(${fieldValue1}, false).to(${fieldValue2}, false);

大於

QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").gt(${fieldValue});

 

大於等於

QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").gte(${fieldValue});

 

小於

QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").lt(${fieldValue});

小於等於

QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").lte(${fieldValue});

 

多條件查詢

QueryBuilder qb1 = QueryBuilders.moreLikeThisQuery(new String[]{"${fieldName1}"}, new String[]{"${fieldValue1}"}, null);
QueryBuilder qb2 = QueryBuilders.rangeQuery("${fieldName2}").gt("${fieldValue2}");
QueryBuilder qb3 = QueryBuilders.boolQuery().must(qb1).must(qb2);


Elasticsearch java api 常用查詢方法QueryBuilder構造舉例