什麼是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...