ElasticSearch 搜尋功能實現

2021-09-27 11:03:35 字數 2675 閱讀 5945

elasticsearch。

獲取文件記錄。

查詢條件:

需要分詞的字段

sku名稱 sku描述

分詞、定義分詞器

有可能用於過濾的字段

平台屬性、**分類、**

要索引其他需要顯示的字段

skuid 路徑

不索引封裝elasticsearch的資料結構

public

class

pmssearchskuinfo

implements

serializable

封裝搜尋引數

public

class

pmssearchparam

implements

serializable

指定索引的資料結構

put gmall

,"price":,

"skuname":,

"skudesc":,

"catalog3id":,

"skudefaultimg":,

"skuattrvaluelist":}

}}}}

}

查詢結果:

sku設計了哪些屬性和屬性值

命中個數,用於分頁;

get gmall/skuinfo/_search},

}],"must":}

}},"highlight":}

},"from":3

,"size":1

,"sort":}

,"aggs":}

}}

jest客戶端包,方便組合複雜的查詢json;

elasticsearch 提供乙個豐富靈活的查詢語言叫做 查詢表示式 , 它支援構建更加複雜和健壯的查詢。官網

@override

public

list

<

pmssearchskuinfo

>

list

(pmssearchparam pmssearchparam)

catch

(ioexception e)

list

<

searchresult.hit

<

pmssearchskuinfo

,void

>

>

hits = execute.

gethits

(pmssearchskuinfo

.class);

for(

searchresult.hit

<

pmssearchskuinfo

,void

>

hit : hits)

pmssearchskuinfos.

add(pmssearchskuinfo);}

system

.out.

println

(pmssearchskuinfos.

size()

);return pmssearchskuinfos;

}

private

string

getsearchdsl

(pmssearchparam pmssearchparam)

if(valueid!=

null)}

/*must , 在must裡面可以加match , 相當於"skuname": "p30pro"*/if(

!stringutils

.isempty

(keyword)

)/*query*/

searchsourcebuilder.

query

(boolquerybuilder)

;/*from*/

searchsourcebuilder.

from(0

);/*size*/

searchsourcebuilder.

size(20

);/*highlight ,關鍵字高亮顯示*/

highlightbuilder highlightbuilder =

newhighlightbuilder()

; highlightbuilder.

pretags(""

);highlightbuilder.

field

("skuname");

highlightbuilder.

posttags(""

);searchsourcebuilder.

highlight

(highlightbuilder)

;/*sort排序 , 按照id公升序 , 降序 ,這裡存在string與long型別轉換問題,待解決*/

searchsourcebuilder.

sort

("id"

,sortorder

.desc)

;/*最後轉化成string返回給前台*/

return searchsourcebuilder.

tostring()

;}

Elasticsearch 條件搜尋

es提供了兩種搜尋的方式 請求引數方式和請求體方式。請求引數方式 curl localhost 9200 bank search?q pretty 其中bank是查詢的索引名稱,q後面跟著搜尋的條件 q 表示查詢所有的內容 請求體方式 推薦這種方式 curl xpost localhost 9200...

Elasticsearch 深入搜尋

結構化搜尋 structured search 是指有關探詢那些具有內在結構資料的過程 在結構化查詢中,我們得到的結果 總是非是即否,要麼存於集合之中,要麼存在集合之外。結構化查詢不關心檔案的相關度或評分 它簡單的對文件包括或排除處理。當進行精確值查詢時,我們會使用過濾器 filters term ...

elasticsearch 搜尋方式

宣告 本文僅僅只是記個筆記 搜尋方式 took 耗費了幾毫秒 timed out 是否超時,這裡沒有 shareds 資料拆成1哥分片,所以對於搜尋請求,會打造所有的primary shard 或者是它的某個replica shard也可以 hits.total 查詢結果的數量,這裡有 3 個 do...