国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch Search API之(Request Body Search 查詢主體)

這篇具有很好參考價值的文章主要介紹了Elasticsearch Search API之(Request Body Search 查詢主體)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  • sentence

句子,使用Java的BreakIterator確定的下一個句子邊界處的突出顯示片段。您可以使用boundary_scanner_locale指定要使用的區(qū)域設(shè)置。unified highlighter高亮器默認行為。

  • word

單詞,由Java的BreakIterator確定的下一個單詞邊界處高亮顯示的片段。

  • boundary_scanner_locale

區(qū)域設(shè)置。該參數(shù)采用語言標記的形式,例如?!癳n - us”、“- fr”、“ja-JP”。更多信息可以在Locale語言標記文檔中找到。默認值是local . root。

  • encoder

指示代碼段是否應該編碼為HTML:默認(無編碼)或HTML (HTML-轉(zhuǎn)義代碼段文本,然后插入高亮標記)。

  • fields

指定要檢索高亮顯示的字段,支持通配符。例如,您可以指定comment_*來獲得以comment_開頭的所有文本和關(guān)鍵字字段的高亮顯示。

注意:當您使用通配符時,只會匹配text、keyword類型字段。

  • force_source

是否強制從_source高亮顯示,默認為false。其實默認情況就是根據(jù)源字段內(nèi)容(_source)內(nèi)容高亮顯示,即使字段是單獨存儲的。

  • fragmenter

指定如何在高亮顯示代碼片段中拆分文本:可選值為simple、span。僅適用于Plain highlighting。默認為span。

  • simple

將文本分成大小相同的片段。

  • span

將文本分割成大小相同的片段,但盡量避免在突出顯示的術(shù)語之間分割文本。這在查詢短語時很有用。

  • fragment_offset

控制開始高亮顯示的margin(空白),僅適用于fast vector highlighter。

  • fragment_size

高亮顯示的片段,默認100。

  • highlight_query

高亮顯示匹配搜索查詢以外的查詢。如果您使用rescore查詢,這尤其有用,因為默認情況下高亮顯示并不會考慮這些查詢。通常,應該將搜索查詢包含在highlight_query中。

  • matched_fields

組合多個字段上的匹配項以突出顯示單個字段。對于以不同方式分析相同字符串的多個字段,這是最直觀的。所有matched_fields必須將term_vector設(shè)置為with_positions_offset,但是只加載匹配項組合到的字段,所以建議該字段store設(shè)置為true。只適用于fast vector highlighter熒光筆。

  • no_match_size

如果沒有要高亮顯示的匹配片段,則希望從字段開頭返回的文本數(shù)量。默認值為0(不返回任何內(nèi)容)。

  • number_of_fragments

返回的高亮顯示片段的最大數(shù)量。如果片段的數(shù)量設(shè)置為0,則不返回片段。默認為5。

  • order

該值默認為none,按照字段的順序返回高亮文檔,可以設(shè)置為score(按相關(guān)性排序)。

  • phrase_limit

控制要考慮的文檔中匹配短語的數(shù)量。防止fast vector highlighter分析太多的短語和消耗太多的內(nèi)存。在使用matched_fields時,將考慮每個匹配字段的phrase_limit短語。提高限制會增加查詢時間并消耗更多內(nèi)存。只支持fast vector highlighter。默認為256。

  • pre_tags

用于高亮顯示HTML標簽,與post_tags一起使用,默認用_高亮顯示文本_。

  • post_tags

用于高亮顯示HTML標簽,與pre_tags一起使用,默認用_高亮顯示文本_。

  • require_field_match

默認情況下,只有包含查詢匹配的字段才會高亮顯示。將require_field_match設(shè)置為false以突出顯示所有字段。默認值為true。

  • tags_schema

定義高亮顯示樣式,例如_。_

  • type

指定高亮顯示器,可選值:unified、plain、fvh。默認值為unified。

7.4 高亮顯示demo

public static void testSearch_highlighting() {

RestHighLevelClient client = EsClient.getClient();

try {

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices(“map_highlighting_01”);

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

sourceBuilder.query(

// QueryBuilders.matchAllQuery()

QueryBuilders.termQuery(“context”, “身份證”)

);

HighlightBuilder highlightBuilder = new HighlightBuilder();

highlightBuilder.field(“context”);

sourceBuilder.highlighter(highlightBuilder);

searchRequest.source(sourceBuilder);

System.out.println(client.search(searchRequest, RequestOptions.DEFAULT));

} catch (Exception e) {

// TODO: handle exception

}

}

其返回值如下:

{

“took”:2,

“timed_out”:false,

“_shards”:{

“total”:5,

“successful”:5,

“skipped”:0,

“failed”:0

},

“hits”:{

“total”:1,

“max_score”:0.2876821,

“hits”:[

{

“_index”:“map_highlighting_01”,

“_type”:“_doc”,

“_id”:“erYsbmcBeEynCj5VqVTI”,

“_score”:0.2876821,

“_source”:{

“context”:“城中西路可以受理外地二代身份證的辦理?!?/p>

},

“highlight”:{ // @1

“context”:[

“城中西路可以受理外地二代身份證的辦理?!?/p>

]

}

}

]

}

}

這里主要對highlight再做一次說明,其中每一個字段返回的內(nèi)容是對應原始數(shù)據(jù)的子集,最多fragmentSize個待關(guān)鍵字的匹配條目,通常,在頁面上顯示文本時,應該用該字段取代原始值,這樣才能有高亮顯示的效果。

8、Rescoring

重打分機制。一個查詢首先使用高效的算法查找文檔,然后對返回結(jié)果的top n 文檔運用另外的查詢算法,通常這些算法效率低效但能提供匹配精度。

resoring查詢與原始查詢分數(shù)的合計方式如下:

  • total

兩個評分相加

  • multiply

將原始分數(shù)乘以rescore查詢分數(shù)。用于函數(shù)查詢重定向。

  • avg

取平均數(shù)

  • max

取最大值

  • min

取最小值。

9、Search Type

查詢類型,可選值:QUERY_THEN_FETCH、QUERY_AND_FETCH、DFS_QUERY_THEN_FETCH。默認值:query_then_fetch。

  • QUERY_THEN_FETCH:首先根據(jù)路由算法向相關(guān)分片(多個)發(fā)送請求,此時只返回documentId與一些必要信息(例如用于排序等),然后對各個分片的結(jié)果進行匯聚,排序,然后選取客戶端指定需要獲取的數(shù)據(jù)條數(shù)(top n),然后根據(jù)documentId再向各個分片請求具體的文檔信息。

  • QUERY_AND_FETCH:在5.4.x版本開始廢棄,是直接向各個分片節(jié)點請求數(shù)據(jù),每個分片返回客戶端請求數(shù)量的文檔信息,然后匯聚全部返回給客戶端,返回的數(shù)據(jù)為客戶端請求數(shù)量size * (路由后的分片數(shù)量)。

  • DFS_QUERY_THEN_FETCH:在開始向各個節(jié)點發(fā)送請求之前,會進行一次詞頻、相關(guān)性的計算,后續(xù)流程與QUERY_THEN_FETCH相同,可以看出,該查詢類型的文檔相關(guān)性會更高,但性能比QUERY_THEN_FETCH要差。

10、scroll

滾動查詢。es另外一種分頁方式。雖然搜索請求返回結(jié)果的單個“頁面”,但scroll API可以用于從單個搜索請求檢索大量結(jié)果(甚至所有結(jié)果),這與在傳統(tǒng)數(shù)據(jù)庫上使用游標的方式非常相似。scroll api不用于實時用戶請求,而是用于處理大量數(shù)據(jù),例如為了將一個索引的內(nèi)容重新索引到具有不同配置的新索引中。

10.1 如何使用scroll API

scroll API使用分為兩步:

1、第一步,首先通過scroll參數(shù),指定該滾動查詢(類似于數(shù)據(jù)庫的游標的存活時間)

POST /twitter/_search?scroll=1m

{

“size”: 100,

“query”: {

“match” : {

“title” : “elasticsearch”

}

}

}

該方法會返回一個重要的參數(shù):scrollId。

2、第二步,使用該scrollId去es服務器拉取下一批(下一頁數(shù)據(jù))

POST /_search/scroll

{

“scroll” : “1m”,

“scroll_id” : “DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==”

}

循環(huán)第三步,可以循環(huán)批量處理數(shù)據(jù)。

3、第三步,清除scrollId,類似于清除數(shù)據(jù)庫游標,快速釋放資源。

DELETE /_search/scroll

{

“scroll_id” : “DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==”

}

下面給出scoll api的java版本示例程序:

public static void testScoll() {

RestHighLevelClient client = EsClient.getClient();

String scrollId = null;

try {

System.out.println("step 1 start ");

// step 1 start

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices(“map_highlighting_01”);

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

sourceBuilder.query(

QueryBuilders.termQuery(“context”, “身份證”)

);

searchRequest.source(sourceBuilder);

searchRequest.scroll(TimeValue.timeValueMinutes(1));

SearchResponse result = client.search(searchRequest, RequestOptions.DEFAULT);

scrollId = result.getScrollId();

// step 1 end

// step 2 start

if(!StringUtils.isEmpty(scrollId)) {

System.out.println("step 2 start ");

SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId);

scrollRequest.scroll(TimeValue.timeValueMinutes(1));

while(true) { //循環(huán)遍歷

SearchResponse scollResponse = client.scroll(scrollRequest, RequestOptions.DEFAULT);

if(scollResponse.getHits().getHits() == null ||

scollResponse.getHits().getHits().length < 1) {

break;

}

scrollId = scollResponse.getScrollId();

// 處理文檔

scrollRequest.scrollId(scrollId);

}

// step 2 end

}

System.out.println(result);

} catch (Exception e) {

e.printStackTrace();

} finally {

if(!StringUtils.isEmpty(scrollId)) {

System.out.println("step 3 start ");

// step 3 start

ClearScrollRequest clearScrollRequest = new ClearScrollRequest();

clearScrollRequest.addScrollId(scrollId);

try {

client.clearScroll(clearScrollRequest, RequestOptions.DEFAULT);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// step 3 end

}

}

}

這里重點闡述一下第一次查詢時,不僅返回scrollId,也會返回第一批數(shù)據(jù)。

10.2 Keeping the search context alive

scroll參數(shù)(傳遞給搜索請求和每個滾動請求)告訴Elasticsearch它應該保持搜索上下文活動多長時間。它的值(例如1m,參見Time unitsedit)不需要足夠長的時間來處理所有數(shù)據(jù)——它只需要足夠長的時間來處理前一批結(jié)果。每個scroll請求(帶有scroll參數(shù))設(shè)置一個新的過期時間。如果scroll請求沒有傳入scroll,那么搜索上下文將作為scroll請求的一部分被釋放。scroll其內(nèi)部實現(xiàn)類似于快照,當?shù)谝淮问盏揭粋€scroll請求時,就會為該搜索上下文所匹配的結(jié)果創(chuàng)建一個快照,隨后文檔的變化并不會反映到該API的結(jié)果。

10.3 sliced scroll

對于返回大量文檔的scroll查詢,可以將滾動分割為多個可以獨立使用的片,通過slice指定。

例如:

GET /twitter/_search?scroll=1m // @1

{

“slice”: { // @11

“id”: 0, // @12

“max”: 2 // @13

},

“query”: {

“match” : {

“title” : “elasticsearch”

}

}

}

GET /twitter/_search?scroll=1m // @2

{

“slice”: {

“id”: 1,

“max”: 2

},

“query”: {

“match” : {

“title” : “elasticsearch”

}

}

}

@1,@2兩個并列的查詢,按分片去查詢。

@11:通過slice定義分片查詢。

@12:該分片查詢的ID。

@13:本次查詢總片數(shù)。

這個機制非常適合多線程處理數(shù)據(jù)。

具體分片機制是,首先將請求轉(zhuǎn)發(fā)到各分片節(jié)點,然后在每個節(jié)點使用匹配到的文檔(hashcode(_uid)%slice片數(shù)),然后各分片節(jié)點返回數(shù)據(jù)到協(xié)調(diào)節(jié)點。也就是默認情況下,分片是根據(jù)文檔的_uid,為了提高分片過程,可以通過如下方式進行優(yōu)化,并指定分片字段。

  • 分片字段類型為數(shù)值型。

  • 字段的doc_values設(shè)置為true。

  • 每個文檔中都索引了該字段。

  • 該字段值只在創(chuàng)建時賦值,并不會更新。

  • 字段的基數(shù)應該很高(相當于數(shù)據(jù)庫索引選擇度),這樣能確保每個片返回的數(shù)據(jù)相當,數(shù)據(jù)分布較均勻。

注意,默認slice片數(shù)最大為1024,可以通過索引設(shè)置項index.max_slices_per_scroll來改變默認值。

例如:

GET /twitter/_search?scroll=1m

{

“slice”: {

“field”: “date”,

“id”: 0,

“max”: 10

},

“query”: {

“match” : {

“title” : “elasticsearch”

}

}

}

11、preference

查詢選擇副本分片的傾向性(即在一個復制組中選擇副本的分片值。默認情況下,Elasticsearch以未指定的順序從可用的碎片副本中進行選擇,副本之間的路由將在集群章節(jié)更加詳細的介紹 ??梢酝ㄟ^該字段指定分片傾向與選擇哪個副本。

preference可選值:

  • _primary

只在節(jié)點上執(zhí)行,在6.1.0版本后廢棄,將在7.x版本移除。

  • _primary_first

優(yōu)先在主節(jié)點上執(zhí)行。在6.1.0版本后廢棄,將在7.x版本移除。

  • _replica

操作只在副本分片上執(zhí)行,如果有多個副本,其順序隨機。在6.1.0版本后廢棄,將在7.x版本移除。

  • _replica_first

優(yōu)先在副本分片上執(zhí)行,如果有多個副本,其順序隨機。在6.1.0版本后廢棄,將在7.x版本移除。

  • _only_local

操作將只在分配給本地節(jié)點的分片上執(zhí)行。_only_local選項保證只在本地節(jié)點上使用碎片副本,這對于故障排除有時很有用。所有其他選項不能完全保證在搜索中使用任何特定的碎片副本,而且在索引更改時,這可能意味著如果在處于不同刷新狀態(tài)的不同碎片副本上執(zhí)行重復搜索,則可能產(chǎn)生不同的結(jié)果。

  • _local

優(yōu)先在本地分片上執(zhí)行。

  • _prefer_nodes:abc,xyz

優(yōu)先在指定節(jié)點ID的分片上執(zhí)行,示例中的節(jié)點ID為abc、xyz。

  • _shards:2,3

將操作限制到指定的分片上執(zhí)行。(這里是2和3)這個首選項可以與其他首選項組合,但必須首先出現(xiàn):_shards:2,3|_local。

  • _only_nodes:abc*,x*yz,…

根據(jù)節(jié)點ID進行限制。

  • Custom (string) value

自定義字符串,其路由為 hashcode(該值)%賦值組內(nèi)節(jié)點數(shù)。例如在web應用中通常以sessionId為傾向值。

12、explain

是否解釋各分數(shù)是如何計算的。

GET /_search

{

“explain”: true,

“query” : {

“term” : { “user” : “kimchy” }

}

}

13、version

如果設(shè)置為true,則返回每個命中文檔的當前版本號。

GET /_search

{

“version”: true,

“query” : {

“term” : { “user” : “kimchy” }

}

}

14、Index Boost

當搜索多個索引時,允許為每個索引配置不同的boost級別。當來自一個索引的點擊率比來自另一個索引的點擊率更重要時,該屬性則非常方便。

使用示例如下:

GET /_search

{

“indices_boost” : [

{ “alias1” : 1.4 },

{ “index*” : 1.3 }

]

}

15、min_score

指定返回文檔的最小評分,如果文檔的評分低于該值,則不返回。

GET /_search

{

“min_score”: 0.5,

“query” : {

“term” : { “user” : “kimchy” }

}

}

16、Named Queries

每個過濾器和查詢都可以在其頂級定義中接受_name。搜索響應中每個匹配文檔中會增加matched_queries結(jié)構(gòu)體,記錄該文檔匹配的查詢名稱。查詢和篩選器的標記只對bool查詢有意義。

java示例如下:

public static void testNamesQuery() {

RestHighLevelClient client = EsClient.getClient();

try {

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices(“esdemo”);

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

sourceBuilder.query(

QueryBuilders.boolQuery()

.should(QueryBuilders.termQuery(“context”, “fox”).queryName(“q1”))

.should(QueryBuilders.termQuery(“context”, “brown”).queryName(“q2”))

);

searchRequest.source(sourceBuilder);

SearchResponse result = client.search(searchRequest, RequestOptions.DEFAULT);

System.out.println(result);

} catch (Throwable e) {

e.printStackTrace();

} finally {

EsClient.close(client);

}

}

返回結(jié)果如下:

{

“took”:4,

“timed_out”:false,

“_shards”:{

“total”:5,

“successful”:5,

“skipped”:0,

“failed”:0

},

“hits”:{

“total”:2,

“max_score”:0.5753642,

“hits”:[

{

“_index”:“esdemo”,

“_type”:“matchquerydemo”,

“_id”:“2”,

“_score”:0.5753642,

“_source”:{

“context”:“My quick brown as fox eats rabbits on a regular basis.”,

“title”:“Keeping pets healthy”

},

“matched_queries”:[

“q1”,

“q2”

]

},

{

“_index”:“esdemo”,

“_type”:“matchquerydemo”,

“_id”:“1”,

“_score”:0.39556286,

“_source”:{

“context”:“Brown rabbits are commonly seen brown.”,

“title”:“Quick brown rabbits”

},

“matched_queries”:[

“q2”

]

}

]

}

}

正如上面所說,每個匹配文檔中都包含matched_queries,表明該文檔匹配的是哪個查詢條件。

17、Inner hits

用于定義內(nèi)部嵌套層的返回規(guī)則,其inner hits支持如下選項:

  • from 用于內(nèi)部匹配的分頁。

  • size 用于內(nèi)部匹配的分頁,size。

  • sort 排序策略。

  • name 為內(nèi)部嵌套層定義的名稱。

該部分示例將在下節(jié)重點闡述。

18、field collapsing(字段折疊)

允許根據(jù)字段值折疊搜索結(jié)果。折疊是通過在每個折疊鍵上只選擇排序最高的文檔來完成的。有點類似于聚合分組,其效果類似于按字段進行分組,默認命中的文檔列表第一層由該字段的第一條信息,也可以通過允許根據(jù)字段值折疊搜索結(jié)果。折疊是通過在每個折疊鍵上只選擇排序最高的文檔來完成的。例如,下面的查詢?yōu)槊總€用戶檢索最佳tweet,并按喜歡的數(shù)量對它們進行排序。

下面首先通過示例進行展示field collapsing的使用。

1)首先查詢發(fā)的推特內(nèi)容中包含elasticsearch的推文:

GET /twitter/_search

{

“query”: {

“match”: {

“message”: “elasticsearch”

}

},

“collapse” : {

“field” : “user”

},

“sort”: [“l(fā)ikes”]

}

返回結(jié)果:

{

“took”:8,

“timed_out”:false,

“_shards”:{

“total”:5,

“successful”:5,

“skipped”:0,

“failed”:0

},

“hits”:{

“total”:5,

“max_score”:null,

“hits”:[

{

“_index”:“mapping_field_collapsing_twitter”,

“_type”:“_doc”,

“_id”:“OYnecmcB-IBeb8B-bF2X”,

“_score”:null,

“_source”:{

“message”:“to be a elasticsearch”,

“user”:“user2”,

“l(fā)ikes”:3

},

“sort”:[

3

]

},

{

“_index”:“mapping_field_collapsing_twitter”,

“_type”:“_doc”,

“_id”:“OonecmcB-IBeb8B-bF2q”,

“_score”:null,

“_source”:{

“message”:“to be elasticsearch”,

“user”:“user2”,

“l(fā)ikes”:3

},

“sort”:[

3

]

},

{

“_index”:“mapping_field_collapsing_twitter”,

“_type”:“_doc”,

“_id”:“OInecmcB-IBeb8B-bF2G”,

“_score”:null,

“_source”:{

“message”:“elasticsearch is very high”,

“user”:“user1”,

“l(fā)ikes”:3

},

“sort”:[

3

]

},

{

“_index”:“mapping_field_collapsing_twitter”,

“_type”:“_doc”,

“_id”:“O4njcmcB-IBeb8B-Rl2H”,

“_score”:null,

“_source”:{

“message”:“elasticsearch is high db”,

“user”:“user1”,

“l(fā)ikes”:1

},

“sort”:[

1

]

},

{

“_index”:“mapping_field_collapsing_twitter”,

“_type”:“_doc”,

“_id”:“N4necmcB-IBeb8B-bF0n”,

“_score”:null,

“_source”:{

“message”:“very likes elasticsearch”,

“user”:“user1”,

“l(fā)ikes”:1

},

“sort”:[

1

]

}

]

}

}

首先上述會列出所有用戶的推特,如果只想每個用戶只顯示一條推文,并且點贊率最高,或者每個用戶只顯示2條推文呢?

這個時候,按字段折疊就閃亮登場了。

java demo如下:

public static void search_field_collapsing() {

RestHighLevelClient client = EsClient.getClient();

try {

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices(“mapping_field_collapsing_twitter”);

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

sourceBuilder.query(

QueryBuilders.matchQuery(“message”,“elasticsearch”)

);

sourceBuilder.sort(“l(fā)ikes”, SortOrder.DESC);

CollapseBuilder collapseBuilder = new CollapseBuilder(“user”);

sourceBuilder.collapse(collapseBuilder);

searchRequest.source(sourceBuilder);

SearchResponse result = client.search(searchRequest, RequestOptions.DEFAULT);

System.out.println(result);

} catch (Throwable e) {

e.printStackTrace();

} finally {

EsClient.close(client);

}

}

其結(jié)果如下:

{

“took”:22,

“timed_out”:false,

“_shards”:{

“total”:5,

“successful”:5,

“skipped”:0,

“failed”:0

},

“hits”:{

“total”:5,

“max_score”:null,

“hits”:[

{

“_index”:“mapping_field_collapsing_twitter”,

“_type”:“_doc”,

“_id”:“OYnecmcB-IBeb8B-bF2X”,

“_score”:null,

“_source”:{

“message”:“to be a elasticsearch”,

“user”:“user2”,

“l(fā)ikes”:3

},

“fields”:{

“user”:[

“user2”

]

},

“sort”:[

3

]

},

{

“_index”:“mapping_field_collapsing_twitter”,

“_type”:“_doc”,

“_id”:“OInecmcB-IBeb8B-bF2G”,

“_score”:null,

“_source”:{

“message”:“elasticsearch is very high”,

“user”:“user1”,

“l(fā)ikes”:3

},

“fields”:{

“user”:[

“user1”

]

},

“sort”:[

3

]

}

]

}

}

上面的示例只返回了每個用戶的第一條數(shù)據(jù),如果需要每個用戶返回2條數(shù)據(jù)呢?可以通過inner_hit來設(shè)置。

public static void search_field_collapsing() {

RestHighLevelClient client = EsClient.getClient();

try {

SearchRequest searchRequest = new SearchRequest();

searchRequest.indices(“mapping_field_collapsing_twitter”);

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

sourceBuilder.query(

QueryBuilders.matchQuery(“message”,“elasticsearch”)

);

sourceBuilder.sort(“l(fā)ikes”, SortOrder.DESC);

CollapseBuilder collapseBuilder = new CollapseBuilder(“user”);

InnerHitBuilder collapseHitBuilder = new InnerHitBuilder(“collapse_inner_hit”);

collapseHitBuilder.setSize(2);

collapseBuilder.setInnerHits(collapseHitBuilder);

sourceBuilder.collapse(collapseBuilder);

searchRequest.source(sourceBuilder);

SearchResponse result = client.search(searchRequest, RequestOptions.DEFAULT);

System.out.println(result);

} catch (Throwable e) {

e.printStackTrace();

} finally {

EsClient.close(client);

}

}

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長或者是報班學習,但對于培訓機構(gòu)動則幾千的學費,著實壓力不小。自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Java開發(fā)全套學習資料》,初衷也很簡單,就是希望能夠幫助到想自學提升又不知道該從何學起的朋友,同時減輕大家的負擔。Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

既有適合小白學習的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學習提升的進階課程,基本涵蓋了95%以上Java開發(fā)知識點,真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學習筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。▊渥ava獲取)

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

獨家面經(jīng)總結(jié),超級精彩

本人面試騰訊,阿里,百度等企業(yè)總結(jié)下來的面試經(jīng)歷,都是真實的,分享給大家!

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

Java面試準備

準確的說這里又分為兩部分:

  1. Java刷題
  2. 算法刷題

Java刷題:此份文檔詳細記錄了千道面試題與詳解;

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

《一線大廠Java面試題解析+核心總結(jié)學習筆記+最新講解視頻+實戰(zhàn)項目源碼》,點擊傳送門即可獲取!
der.collapse(collapseBuilder);

searchRequest.source(sourceBuilder);

SearchResponse result = client.search(searchRequest, RequestOptions.DEFAULT);

System.out.println(result);

} catch (Throwable e) {

e.printStackTrace();

} finally {

EsClient.close(client);

}

}

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長或者是報班學習,但對于培訓機構(gòu)動則幾千的學費,著實壓力不小。自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Java開發(fā)全套學習資料》,初衷也很簡單,就是希望能夠幫助到想自學提升又不知道該從何學起的朋友,同時減輕大家的負擔。[外鏈圖片轉(zhuǎn)存中…(img-LbS2yhuQ-1711967282022)]

[外鏈圖片轉(zhuǎn)存中…(img-4TgoB8Cj-1711967282023)]

[外鏈圖片轉(zhuǎn)存中…(img-vR4epAFB-1711967282023)]

既有適合小白學習的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學習提升的進階課程,基本涵蓋了95%以上Java開發(fā)知識點,真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學習筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。▊渥ava獲?。?/strong>

Elasticsearch Search API之(Request Body Search 查詢主體),程序員,elasticsearch,python,jenkins

獨家面經(jīng)總結(jié),超級精彩

本人面試騰訊,阿里,百度等企業(yè)總結(jié)下來的面試經(jīng)歷,都是真實的,分享給大家!

[外鏈圖片轉(zhuǎn)存中…(img-pdgElrW3-1711967282024)]

[外鏈圖片轉(zhuǎn)存中…(img-IE8YKhtd-1711967282025)]

[外鏈圖片轉(zhuǎn)存中…(img-EoCP9Nm8-1711967282025)]

[外鏈圖片轉(zhuǎn)存中…(img-968jl5Fa-1711967282025)]

Java面試準備

準確的說這里又分為兩部分:

  1. Java刷題
  2. 算法刷題

Java刷題:此份文檔詳細記錄了千道面試題與詳解;

[外鏈圖片轉(zhuǎn)存中…(img-5S03FJl3-1711967282026)]

[外鏈圖片轉(zhuǎn)存中…(img-RT8Np3zr-1711967282027)]

《一線大廠Java面試題解析+核心總結(jié)學習筆記+最新講解視頻+實戰(zhàn)項目源碼》,點擊傳送門即可獲??!文章來源地址http://www.zghlxwxcb.cn/news/detail-845664.html

到了這里,關(guān)于Elasticsearch Search API之(Request Body Search 查詢主體)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • Elastic Search的RestFul API入門:如何進行ES的查詢-search

    在這篇教學文章中,我們將深入探討Elasticsearch的search功能。這是一個非常強大且靈活的功能,它允許我們對存儲在Elasticsearch中的數(shù)據(jù)進行各種復雜的查詢和分析。本章的目標是讓讀者理解如何進行Elasticsearch的搜索,以及如何在搜索過程中自主調(diào)整搜索參數(shù),從而靈活地控制

    2024年02月03日
    瀏覽(27)
  • Elasticsearch ES 簡單查詢 Query String Search 入門

    嘗試了text類型排序需要特別處理下. \\\"reason\\\" : \\\"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [name] in order to load field data by uninverting the inverted index.

    2024年02月16日
    瀏覽(27)
  • elasticsearch 深度分頁查詢 Search_after(圖文教程)

    elasticsearch 深度分頁查詢 Search_after(圖文教程)

    前言 這是我在這個網(wǎng)站整理的筆記,有錯誤的地方請指出,關(guān)注我,接下來還會持續(xù)更新。 作者:神的孩子都在歌唱 search_after 是 Elasticsearch 提供的一種分頁查詢方式,它可以用來在已經(jīng)排序的結(jié)果集中進行分頁查詢。 search_after查詢步驟如下(下面有具體的例子幫助理解):

    2024年04月11日
    瀏覽(26)
  • Java客戶端調(diào)用elasticsearch進行深度分頁查詢 (search_after)

    Java客戶端調(diào)用elasticsearch進行深度分頁查詢 (search_after)

    前言 這是我在這個網(wǎng)站整理的筆記,有錯誤的地方請指出,關(guān)注我,接下來還會持續(xù)更新。 作者:神的孩子都在歌唱 具體的Search_after解釋,可以看我這篇文章 elasticsearch 深度分頁查詢 Search_after(圖文教程) 參考:https://blog.csdn.net/qq_44056652/article/details/126341810 作者:神的孩子

    2024年03月22日
    瀏覽(16)
  • Spring Data訪問Elasticsearch----查詢方法,程序員必學

    例子 Elasticsearch查詢字符串 And findByNameAndPrice { “query” : {“bool” : {“must” : [{ “query_string” : { “query” : “?”, “fields” : [ “name” ] } },{“query_string” : { “query” : “?”, “fields” : [ “price” ] } }]}}} Or findByNameOrPrice {“query”:{“bool”:{“should”:[{“query_string”

    2024年04月14日
    瀏覽(19)
  • ElasticSearch第六講 ES 三種分頁查詢from+size / Scroll /search_after

    我的Git地址:https://gitee.com/ITLULU 歡迎訪問 ES的分頁查詢和關(guān)系數(shù)據(jù)庫的分頁查詢的區(qū)別: ES分頁查詢有以下幾種: 1:簡單的 from size (有默認的最大Size,不可無限大小查詢,因為數(shù)據(jù)過多查詢性能會降低,且也要考慮內(nèi)存問題,以及OS緩存數(shù)據(jù)的能力) 2: scroll基于查詢窗口

    2024年02月01日
    瀏覽(15)
  • Request Body數(shù)據(jù)讀取

    攔截器要讀取request body數(shù)據(jù)的話需要注意一個問題,一旦攔截器把數(shù)據(jù)流從request讀取出來后,后區(qū)的接口層就拿不到數(shù)據(jù)了,因為流是一次性的,那么要解決這個問題,我們就需要在攔截器取出流拿到數(shù)據(jù)后重新將數(shù)據(jù)放回流,這樣后面的接口層就能正常獲取到數(shù)據(jù)了 下面

    2024年02月09日
    瀏覽(14)
  • golang多次讀取http request body問題分析

    golang多次讀取http request body問題分析

    使用postman發(fā)送了一個http請求,對每個請求都有一個對應的context: 其中Request成員變量是golang1.17.3版本http庫中定義的Request結(jié)構(gòu)(這里貼出部分成員變量): 請求處理的代碼使用ReadAll方法讀取Request.Body,debug發(fā)現(xiàn)讀取出來的字節(jié)切片為空: 我把這個問題發(fā)給了gpt gpt回答說可能

    2024年03月10日
    瀏覽(20)
  • HttpMessageNotReadableException: Required request body is missing:

    HttpMessageNotReadableException: Required request body is missing:

    完整錯誤: Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.Object com.example.sx.study.Econtroller.test1(com.example.sx.study.Entity,org.springframework.validation.BindingResult)] 解決辦法: 在@RequestBody后加上( required = false ) 雖然通過此方法的確返回了

    2023年04月08日
    瀏覽(13)
  • Required request body is missing 錯誤解決

    測試接口報了這個問題:Required request body is missing。因為我使用的是GET請求 然后controller中的方法接收的參數(shù)使用了@RequestBody 注解 例如:會報Required request body is missing 因為Get請求發(fā)送數(shù)據(jù)的方式不是json格式,所以當我們使@RequsetBody封裝Get請求的數(shù)據(jù)時就會出現(xiàn)無法獲取到數(shù)據(jù)

    2024年02月07日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包