大数据技术之Elasticsearch-Java API操作(二)条件查询QueryBuilder

词条查询(TermQuery

1)源代码

@Test

public void termQuery() {

 

// 1 第一field查询

SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")

.setQuery(QueryBuilders.termQuery("content", "全文")).get();

 

// 2 打印查询结果

SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象

System.out.println("查询结果有:" + hits.getTotalHits() + "条");

 

for (SearchHit hit : hits) {
           System.out.println(hit.getSourceAsString());//打印出每条结果
        }

 

// 3 关闭连接

client.close();

}

2)结果查看

 

****自己操作****

Java代码:

// 十一、词条查询-TermQuery
    // 注意:需要加入分词器,不然容易搜不到匹配的词
    @Test
    public void termQuery() {
        // 类似于MySQL中的=
        // 注意:这个=不是真正的=,它不是与字段等于,而是和字段的分词结果等于。
        SearchResponse searchResponse = client.prepareSearch("blog").setTypes("article")
                .setQuery(QueryBuilders.termQuery("content", "web")).get();
        SearchHits hits = searchResponse.getHits();
        System.out.println("查询结果有:" + hits.getTotalHits() + " 条");
        for (SearchHit searchHits : hits) {
            System.out.println(searchHits.getSourceAsString());
        }
        client.close();
    }

结果:

查询结果有:4 条

{"id":5,"title":"基于Lucene的搜索服务器","content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口"}

{"id":"1","title":"基于Lucene的搜索服务器","content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口"}

{"id":3,"title":"基于Lucene的搜索服务器","content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口"}

{"id":"2","title":"基于Lucene的搜索服务器","content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。大数据前景无限","createDate":"2017-8-22"}

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3