最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

Elasticsearch概述和DSL查詢總結

2023-08-03 13:32 作者:三月的風很暖  | 我要投稿

一、Elasticsearch概述

1. 什么是Elasticsearch

Elasticsearch是基于Lucene的搜索服務器,它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用java開發(fā)的,開源,是當前流行的企業(yè)級搜索引擎。

2. 作用

?Elasticsearch具有極快的搜索速度,可以在幾乎實時的時間內對大規(guī)模數據進行搜索和查詢;它利用倒排索引和分布式搜索技術,使搜索操作變得高效,并能夠多種查詢方式進行全文搜索、短語匹配、模糊搜索等。

3. 特點

能夠實時搜索,穩(wěn)定,可靠,快速并且安裝使用方便。

分布式和可擴展性:Elasticsearch基于分布式架構,可以將數據分布在多臺服務器上,實現數據的水平分片和復制。這使得它能夠處理海量數據,并具有高可用性和容錯能力。通過添加或刪除節(jié)點,可以輕松地擴展集群的容量和性能。


概念和作用

DSL查詢是一種基于JSON的查詢語言,用于構建復雜的查詢和過濾條件,以檢索和過濾文檔。DSL查詢提供了豐富的查詢語法和靈活的組合方式,可以根據用戶需求構建定制化的查詢邏輯。

查詢代碼總結

重復代碼:

@Autowired? ?//注入客戶端

? ? RestHighLevelClient client;?

SearchRequest searchRequest = new SearchRequest("abc");? //參數為索引名

searchRequest.types("doc");? //參數為類型

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();? //創(chuàng)建查找源構造器

SearchResponse searchResponse = client.search(searchRequest);??


一、分頁查詢

//分頁查詢,設置起始下標,從0開始?

searchSourceBuilder.from(0); //工作中可以套公式計算出起始值(page-1)*size

//每頁顯示個數?

searchSourceBuilder.size(10);?


二、Term精準查詢

searchSourceBuilder.query(QueryBuilders.termQuery("name","spring"));?


三、根據id精準匹配

searchSourceBuilder.query(QueryBuilders.termsQuery("_id", idList));?


四、match全文檢索

先將搜索字符串分詞,再使用各個詞條從索引中搜索。

searchSourceBuilder.query(

? ? QueryBuilders.matchQuery("description", "spring開發(fā)")

? ? ? ? .operator(Operator.OR));


五、multi一次匹配多個字段

單項匹配是在一個field中去匹配,多項匹配是拿關鍵字去多個Field中匹配。

MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("spring框架", "name", "description") .minimumShouldMatch("50%");?

multiMatchQueryBuilder.field("name",10);//提升boost顯示級別


六、布爾查詢

must:文檔必須匹配must所包括的查詢條件,相當于 “AND”。 表示必須,多個查詢條件必須都滿足。

should:文檔應該匹配should所包括的查詢條件其中的一個或多個,相當于 "OR" 。表示或者,多個查詢條件只要有一個滿足即可。

must_not:文檔不能匹配must_not所包括的該查詢條件,相當于 “NOT”。表示非。

boolQueryBuilder.must(multiMatchQueryBuilder);?


七、filter過濾器

boolQueryBuilder.filter(QueryBuilders.termQuery("studymodel", "201001"));?

boolQueryBuilder.filter(QueryBuilders.rangeQuery("price").gte(60).lte(100));?


八、sort排序

searchSourceBuilder.sort(new FieldSortBuilder("price").order(SortOrder.ASC));?


九、高亮顯示

//高亮設置

HighlightBuilder highlightBuilder = new HighlightBuilder();

highlightBuilder.preTags("<tag>");//設置前綴

highlightBuilder.postTags("</tag>");//設置后綴

// 設置高亮字段

highlightBuilder.fields().add(new HighlightBuilder.Field("name"));

//取出高亮字段內容

HighlightField nameField = highlightFields.get("name");

Text[] fragments = nameField.getFragments();

Elasticsearch概述和DSL查詢總結的評論 (共 條)

分享到微博請遵守國家法律
寻乌县| 合江县| 龙州县| 新乡县| 宕昌县| 凌云县| 万山特区| 日喀则市| 贞丰县| 长宁县| 中江县| 合川市| 耒阳市| 东阳市| 河北区| 诸暨市| 阳曲县| 彰化县| 开江县| 来安县| 霍州市| 广南县| 长垣县| 南岸区| 长宁区| 区。| 阳东县| 巩留县| 华蓥市| 洛扎县| 苍山县| 彰化市| 和平区| 丰城市| 甘肃省| 长汀县| 镇雄县| 大名县| 商河县| 锡林浩特市| 章丘市|