java returnAddres_JavaClient 查询ES-(重要)
QueryBuilder queryBuilder = QueryBuilders.termQuery("字段","term值");
SearchResponse response = client.prepareSearch("索引名稱")
.setTypes("type名稱")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(queryBuilder)
.execute()
.actionGet();
//獲取命中數
System.out.println(response.getHits().totalHits());
//獲取響應字符串
System.out.println(response.toString());
//遍歷查詢結果輸出相關度分值和文檔內容
SearchHits searchHits = response.getHits();
for(SearchHit searchHit : searchHits){
System.out.println(searchHit.getScore());
System.out.println(searchHit.getSourceAsString());
}
1、term query 分詞精確查詢,查詢hotelName 分詞后包含 hotel的term的文檔
QueryBuilders.termQuery("hotelName","hotel")
2、terms Query 多term查詢,查詢hotelName 包含 hotel 或test 中的任何一個或多個的文檔
QueryBuilders.termsQuery("hotelName","hotel","test")
3、range query 范圍查詢 查詢hotelNo
QueryBuilders.rangeQuery("hotelNo")
.gt("10143262306") //大于 10143262306
.lt("101432623062055348221") //小于 101432623062055348221
.includeLower(true) //包括下界
.includeUpper(false); //包括上界
4、 exist query 查詢字段不為null的文檔 查詢字段address 不為null的數據
QueryBuilders.existsQuery("address")
5、missing query 返回 沒有字段或值為null或沒有值的文檔
java client 該方法已經標記為過時,推薦用exist代替 如下 existsQuery BoolQueryBuilder#mustNot(QueryBuilder)
QueryBuilders.missingQuery("accountGuid")
等同
QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery("accountGuid"));
6.prefix query 匹配分詞前綴 如果字段沒分詞,就匹配整個字段前綴
QueryBuilders.prefixQuery("hotelName","花園")
7、wildcard query 通配符查詢,支持* 任意字符串;?任意一個字符
QueryBuilders.wildcardQuery("channelCode","ctr*")
QueryBuilders.wildcardQuery("channelCode","ctr?")
8、regexp query 正則表達式匹配分詞,正則表達式自己寫吧 略
9、 fuzzy query 分詞模糊查詢,通過增加fuzziness 模糊屬性,來查詢term 如下 能夠匹配 hotelName 為 te el tel前或后加一個字母的term的 文檔 fuzziness 的含義是檢索的term 前后增加或減少n個單詞的匹配查詢,
QueryBuilders.fuzzyQuery("hotelName", "tel").fuzziness(Fuzziness.ONE)
10、type Query 含義不是很理解,通過代碼也還暫未理解 英文原文:Filters documents matching the provided document / mapping type.
QueryBuilders.typeQuery("channelCode")
11、idx Query 根據ID查詢
QueryBuilders.idsQuery().addIds("exchange_operate_monitor_db$32293","exchange_operate_monitor_db$32294")
總結
以上是生活随笔為你收集整理的java returnAddres_JavaClient 查询ES-(重要)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 域民不与封疆之界固国不以山溪之险威天下不
- 下一篇: isis中的骨干区域全由什么路由器构成