Solr Suggest實現搜尋智慧型提示

2021-06-22 05:05:42 字數 1479 閱讀 7143

智慧型提示簡介

solr suggestion智慧型提示模組

作為乙個應用廣泛的搜尋引擎系統,solr內建了智慧型提示功能,它在solr裡叫做suggest模組.該模組可選擇基於提示詞文字做智慧型提示,還支援通過針對索引的某個字段建立索引詞庫做智慧型提示。在諸多文件中都推薦使用基於索引來做智慧型提示,因此我們目前的實現也是採取該方案。

solr suggest的配置要點

suggest欄位的選擇

因為現在整個平台是基於spu的構建的,因此決定採用spu關鍵屬性組合及類目名稱來做suggest的索引字段。首先在schema.xml中新增儲存suggest的新字段,如下:

在該field的配置中,fieldtype的選擇非常關鍵,通常建議智慧型提示欄位的fieldtype不需要配置複雜的analyzer,避免因為分詞導致智慧型提示的詞失控。

配置suggest模組

在solrconfig.xml檔案中配置suggest模組,其中suggest依賴於spellchecker模組,所以這兩個都需要配置。具體配置如下:

string

suggest

org.apache.solr.spelling.suggest.suggester

org.apache.solr.spelling.suggest.tst.tstlookup

suggestion //設定索引的字段

0.0001

spellchecker

freq

true

true

suggest

true

false

10true

suggest

上述配置的具體說明可參照solr的官方文件,下面對其中幾個容易疑惑的地方做一下說明

配置完成之後,重啟solr後,訪問如下鏈結

結果如下:

0

0 10010

motorola xoom 3g版

motorola xt875

motorola xt300

motorola xt883

motorola xt702

motorola xt806

motorola xt800

motorola xt502

motorola xt882

motorola xt316

motorola xoom 3g版

目前主要存在的問題是使用freq排序演算法,返回的結果完全基於索引中字元的出現次數,沒有兼顧使用者搜尋詞語的頻率,因此無法將一些熱門詞排在更靠前的位置。這塊可定製suggestwordscorecomparator來實現,目前還沒有著手做這件事情。

相關鏈結 

kendo filter實現搜尋

上面demo引用 下圖是另乙個例子,實現filter模糊查詢用到keyup事件 部分 namefilter keyup filterresults modelfilter keyup filterresults hostfilter keyup filterresults addressfilter...

實現搜尋功能

準備檢視函式search 修改base.html 中搜尋輸入框所在的 form action method get input type text placeholder 搜尋從這裡開始.style width 180px margin left auto height 30px padding l...

QTableWidget 搜尋實現

文章目錄 隱藏 新增乙個 qlineedit,連線它的 textchanged 事件,在 textchanged 槽函式中編寫方法,方法內容如下。ui tbwgtrelation setrowhidden i,browhidden 核心 此方式是設定行隱藏和顯示具體根據第二個引數void relat...