solr的suggest模組
solr的suggest模組
solr有個suggest模組,用來實現下拉提醒功能,就是輸入了一個文字之後,進行文字建議查詢的功能。
suggest請求的url
http://localhost:8983/solr/hotquestions/suggest?suggest=true&suggest.build=true&suggest.dictionary=mySuggester&wt=json&suggest.q=elec
這裡可以看到有幾個引數:
suggest=true
這個引數必須為true,表示我這次請求是suggest請求。
suggest.q
進行查詢建議的文字
suggest.dictionary
搜尋組建中詞典的名字,這個引數必須填寫,你可以在請求體中帶上這個引數,也可以在請求引數中帶上。
suggest.count
suggest請求返回的suggest數。
suggest.cfg
這個不是必填的,如果suggester支援,用於內容過濾。
suggest.build
如果設定為true,這個請求會導致重建suggest索引。
這個欄位一般用於初始化的操作中,線上上環境,一般不會每個請求都重建索引,如果線上你希望保持字典最新,最好使用buildOnCommit或者buildOnOptimize來操作。
suggest.reload
如果設定為true,會重新載入suggest索引。
suggest.buildAll
如果設定為true,會重建所有suggest索引。
suggest.reloadAll
如果設定為true,會重新載入所有suggest索引。
suggest模組的配置
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">cat</str>
<str name="weightField">price</str>
<str name="suggestAnalyzerFieldType">string</str>
</lst>
</searchComponent>
name
suggester的名字,如果設定多個,可以在請求中指定。
lookupImpl
查詢方式的具體實現,有幾種方式:
- AnalyzingLookupFactory: 這個查詢方式先對查詢的輸入文字進行分析,構建出一個FST樹,然後再進行查詢。
- FuzzyLookupFactory: 這個查詢方式是AnalyzingLookupFactory的擴充套件,只不過是一種模糊匹配。
- AnalyzingInfixLookupFactory: 這個查詢方式對輸入的文字進行分析,然後建議出字首匹配的索引文字。
- BlendedInfixLookupFactory: 這個查詢方式是AnalyzingInfixSuggester的擴充套件,這個查詢方式可以為分析後的文字設定一些權重,你可以設定權重正序或逆序。
- FSTLookupFactory: 基於自動機的查詢。這個方式構建比較慢,但是使用記憶體更少。除非你需要更復雜的結果,否則就不需要使用這種方式。
- TSTLookupFactory: 一個簡單的,基於trie樹的查詢。
- WFSTLookupFactory:
- JaspellLookupFactory:
dictionaryImpl
字典的具體實現,具體有幾種方式:
- DocumentDictionaryFactory: 一個基於詞語,權重,和一個有效的索引中的負荷。
- DocumentExpressionDictionaryFactory: 和DocumentDictionaryFactory一樣,但是允許使用者設定複雜的"weightExpression"標籤來設定權重
- HighFrequencyDictionaryFactory: 允許增加一個閥值來修改返回結果
- FileDictionaryFactory: 允許使用一個外部的檔案來包含建議的結果。權重也是可以在外部檔案中有所載入的。
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
suggest的handler,主要設定了建議返回的預設個數,預設使用的suggest元件等。
相關文章
- LoadRunner測試Google SuggestGo
- Solr的特性Solr
- AJAX案例研究之google suggest(轉)Go
- Solr學習總結(二)Solr的安裝與配置Solr
- Solr的關鍵特性Solr
- 【Lucene&&Solr】Windows搭建solr伺服器SolrWindows伺服器
- 仿百度、Google的suggest特效功能,原始碼分析Go特效原始碼
- Solr入門和實踐以及我對Solr的8點理解Solr
- Solr 入門Solr
- .Net 下 Solr 入門學習系列(一)Solr簡介Solr
- .Net 下 Solr 入門學習系列(二)Solr安裝Solr
- 編寫Ansj的Solr外掛Solr
- 操作solr replication的API總結SolrAPI
- solr主從複製的原理Solr
- Solr的函式查詢(FunctionQuery)Solr函式Function
- solr介面介紹Solr
- solr sharding策略Solr
- Solr4+IKAnalyzer的安裝配置Solr
- .Net 下 Solr 入門學習系列(三)Solr管理控制檯使用Solr
- Solr 18 - 通過SolrJ區域性更新Solr中的文件 (原子操作、非覆蓋操作)Solr
- ZooKeeper 搭建 solr 叢集Solr
- Solr刪除資料Solr
- 為solr配置HttpsSolrHTTP
- Mysql叢集/solr/mongoDBMySqlSolrMongoDB
- Solr搜尋基礎Solr
- Apache Solr 4釋出ApacheSolr
- .Net 下 Solr 入門學習系列(四)Solr查詢引數整理Solr
- solr(三)centos7.6安裝配置javasdk1.8及執行solrSolrCentOSJava
- solr在windows下的安裝及配置SolrWindows
- Solr的Scala客戶端(scalikesolr)介紹Solr客戶端
- Solr報錯Index locked for write for core '***'. Solr now longer supports forceful unlocking via 'unlockOnStartup'SolrIndex
- solr全文檢索學習Solr
- solr安裝使用筆記Solr筆記
- Solr資料不同步Solr
- Spring Data Solr 教程: 排序SpringSolr排序
- Solr體系架構圖Solr架構
- Solr主要元件關係圖Solr元件
- Windows下搭建Solr環境WindowsSolr