ES之Highlight及Suggest搜索推荐详解
一. Highlight高亮查詢
a) 三種高亮:
i. unified highlighter:默認的高亮方式,使用Lucene的實現方式
ii. plain highlighter:性能較高,消耗少量內存,性價比高
iii. fast vactor highlighter 適合字段較大,較復雜的查詢情況
b) 自定義標簽
i. pre_tag:起始標簽,如
ii. post_tag:結束標簽,如
c) 參數設置:https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html
d) 注意
i. 每個高亮字段都需要對應一個查詢
二. Suggest搜索推薦
i. term suggester:根據詞項的詞頻來推薦
a) text:用戶搜索的文本
b) field:要從哪個字段選取推薦數據
c) analyzer:使用哪種分詞器
d) size:每個建議返回的最大結果數
e) sort:如何按照提示詞項排序,參數值只可以是以下兩個枚舉:
i. score:分數>詞頻>詞項本身
ii. frequency:詞頻>分數>詞項本身
f) suggest_mode:搜索推薦的推薦模式,參數值亦是枚舉:
i. missing:默認值,僅匹配不在索引中的詞項
ii. popular:僅推薦比原始推薦詞項文檔詞頻(doc count)更高的相似詞項
iii. always:根據 建議文本中的詞項 推薦 任何匹配的建議詞
g) max_edits:可以具有最大偏移距離候選建議以便被認為是建議。只能是1到2之間的值。任何其他值都將導致引發錯誤的請求錯誤。默認為2
h) prefix_length:前綴匹配的時候,必須滿足的最少字符
i) min_word_length:最少包含的單詞數量
j) min_doc_freq:最少的文檔頻率
i. direct_generator:phrase suggester使用候選生成器生成給定文本中每個項可能的項的列表。單個候選生成器類似于為文本中的每個單獨的調用term suggester。生成器的輸出隨后與建議候選項中的候選項結合打分。目前只支持一種候選生成器,即direct_generator。建議API接受密鑰直接生成器下的生成器列表;列表中的每個生成器都按原始文本中的每個項調用。
ii. highlight:高亮標簽
pre_tag:起始標簽,如
post_tag:閉合標簽,如
i. Completion:es的一種特有類型,專門為suggest提供,基于內存,性能很高。
ii. prefix query:基于前綴查詢的搜索提示,是最常用的一種搜索推薦查詢。
prefix:客戶端搜索詞
field:建議詞字段
size:需要返回的建議詞數量
skip_duplicates:是否過濾掉重復建議,默認false
iii. fuzzy query
fuzziness:允許的偏移量,默認auto
transpositions:如果設置為true,則換位計為一次更改而不是兩次更改,默認為true。
min_length:返回模糊建議之前的最小輸入長度,默認 3
prefix_length:輸入的最小長度(不檢查模糊替代項)默認為 1
unicode_aware:如果為true,則所有度量(如模糊編輯距離,換位和長度)均以Unicode代碼點而不是以字節為單位。這比原始字節略慢,因此默認情況下將其設置為false。
iv. regex query:可以用正則表示前綴,不建議使用
三. 地理位置搜索 疫情地圖
a) geo_point:地理位置類型,經緯度坐標
i. latitude:維度 縮寫:lat
ii. longitude:經度 縮寫:lon
b) Geo-bounding box query:兩個點確定一個矩形,搜索中間的點
i. top_left:矩形左上點坐標
ii. bottom_right:矩形右上角表
參考文章:http://www.ysxbohui.com/article/25
總結
以上是生活随笔為你收集整理的ES之Highlight及Suggest搜索推荐详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sharepoint 2016 学习系列
- 下一篇: 胡扯淡的智能路由