日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

elasticseacth基础操作--QueryBuilders的使用

發布時間:2023/12/19 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 elasticseacth基础操作--QueryBuilders的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QueryBuilder 是es中提供的一個查詢接口, 可以對其進行參數設置來進行數據查詢

1.termQuery("key",obj)完全匹配

QueryBuilders.termQuery("name","v1");

2.termsQuery("key",obj1,obj2...)一次匹配多值

QueryBuilders.termsQuery("name","v1","v2","v3");

3.matchQuery("key",obj)單個匹配,field不支持通配符,前綴具有高級特性

4.multiMatchQuery("text","field1","field2",...)匹配多個字段,field有通配符

5.matchAllQuery();匹配所有文件

mathcQuery與termQuery區別:

matchQuery:會將搜索詞分詞,再與目標查詢字段進行匹配,若分詞中的任意一個詞與目標字段匹配上,則可查詢到。

termQuery:不會對搜索詞進行分詞處理,而是作為一個整體與目標字段進行匹配,若完全匹配,則可查詢到。

組合查詢

6.must(QueryBuilders): AND

7.mustNot(QueryBUilders):NOT

8.should :OR

QueryBuilders
            .boolQuery()
            .must(QueryBuilders.termQuery("name","Hello"))
            .mustNot(QueryBuilders.termQuery("isEnable",true))
            .should(QueryBuilders.termQuery("age","233"));

9.只根據id查詢

QueryBuilders.idsQuery(String ..type).ids(Collection<String>ids);

QueryBuilders.idsQuery().ids("CHszwWRURyK08j01p0Mmug", "ojGrYKMEQCCPvh75lHJm3A");

10.范圍查詢

QueryBuilder queryBuilder = QueryBuilders.rangeQuery("user")
.from("kim")
.to("lucy")
.includeLower(true) //包含上界
.includeUpper(true); //包含下屆

11.通配符查詢(支持* 匹配任何字符序列,包括空 避免*開始,會檢索大量內容造成效率緩慢)

QueryBuilder queryBuilder = QueryBuilders.wildcardQuery("user","he*o");

12.分詞 模糊查詢 fuzzy query

QueryBuilders.fuzzyQuery("name","hello");

13.前綴匹配查詢 prefix query

QueryBuilders.prefixQuery("name","hello");

14.嵌套查詢

QueryBuilders.nestedQuery("policy", //path
            QueryBuilders.boolQuery()   // Your query
                .must(QueryBuilders.termQuery("name", "hello"))
                .must(QueryBuilders.rangeQuery("age").lt("23"))
            ,ScoreMode.None);// max,total,avg,none

public static NestedQueryBuilder nestedQuery(String path, QueryBuilder query, ScoreMode scoreMode) {
return new NestedQueryBuilder(path, query, scoreMode);
}

總結

以上是生活随笔為你收集整理的elasticseacth基础操作--QueryBuilders的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。