ElasticSearch 高亮搜尋

2021-10-07 14:37:34 字數 1255 閱讀 3115

什麼是highlight

highlight就是我們所謂的高亮,即允許對乙個或者對個字段在搜尋結果中高亮顯示。比如字型加粗或者字型呈現和其他文字普通顏色等。

三種高亮型別

es提供了三種高亮型別,lucene的plain highlighter,以及fast vector highlighter(fvh)以及posting highlighter.

plain highlighter

plain hightlighter是預設的高亮選擇,由使用lucene hightlighter實現的。它主要是試圖反應查詢匹配邏輯。

如果想高亮很多字段,而且帶有複雜的查詢,那麼這個highlight並不是很快的。為了準確地反映查詢邏輯,它建立了乙個很小的記憶體索引。並通過lucene的查詢執行計畫來重新執行原始的查詢條件,從而獲得對當前文件的低階匹配資訊,每個欄位和每個需要高亮顯示的文件都會重複這個過程,所以是有效能隱患的。所以需要你換乙個hightlight型別

fast vector highlighter

它的主要特點:

對磁碟的消耗更少

將文字切割為句子,並且對句子進行高亮,效果更好

效能比plain highlight高,因為不需要重新對高亮文字進行分詞

posting highlighter

它對大檔案而言(大於1m),效能更高。

查詢位址資訊中含有mill或者court的記錄,並將它們高亮顯示。

查詢語句如下:

get

/bank/_search},

}]}}

,"highlight":}

}}

查詢結果如下:

,"highlight":}

,,"highlight"

:}

發現它會自動在匹配欄位上加上標籤

語法如下:

"pre_tags":[

""],"post_tags":[

""],

查詢語句如下:

get

/bank/_search},

}]}}

,"highlight":}

}}

查詢結果如下:

,"highlight":}

,,"highlight"

:}

發現高亮標籤已經被替換

elasticsearch高亮查詢

pageinfo elasticsearchtemplate.queryforpage query,article.class 帶條件的分頁查詢 test public void testselectpagebyid 建立querybuilder查詢條件 querybuilder querybuil...

elasticsearch 大字段高亮速度慢優化

description 配置該引數後,能明顯看到高亮速度快了很多。但是,當輸入某些查詢詞時,可能會遇到如下錯誤 錯誤lucense解析欄位中的空格導致的。解決方案 把空格term,使用filter過濾掉。但是,在新增空格filter時,發現乙個問題,就是使用jieba分詞器,就算新增了如下filte...

Elasticsearch搜尋詳解之高亮命中關鍵字

通常顯示在網頁上時,用不同顏色標記出搜尋命中的是哪些關鍵字是很有用的,這就要用到highlight 引數。舉個例子,get search highlight summary 返回的結果裡面每個 hit 多了乙個類似這樣部分 highlight 看例子很容易理解,但必須滿足乙個條件,highlight...