大數據技術之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) {
// 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"}