智慧型提示簡介
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後,訪問如下鏈結
結果如下:
00 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...