2014-05-22 68 views
0

基於每個術語的提升值,我需要提升solr 4.7.x自動建議響應中的術語/ s,並且此提升適用於某些術語集定義在一個文件中(並且業務可以管理這個文件)。更改基於術語提升列表的solr建議響應

我有一個設計來擴展現有的響應作家或編寫自定義插件和
對於前:mydic.suggest文件看起來像
鷹40.00 命中20.00 託管30.00升

當我啓動打字

- >查詢1: 「(http://example.com/solr/collection1/suggest?q=eag)」

原始Solr的反應將(基於我的索引) 建議: {
心切,

}

所以建議反應應改爲
建議:{
鷹,
急於
}

- > QUERY2:「( http://example.com/solr/collection1/suggest?q=ho)「 原始Solr響應將(基於我的索引)

建議: { 假期,
冬青,
家,
家鄉,
跳,
希望,
託管
}

所以建議反應,應改爲 - 觀察術語「託管」出現

建議:{ 託管,
假期,
冬青,
家,
家鄉,
跳,
希望
}

這是可行的定製Solr的插件?

我的建議合併DIC處理器看起來::

<searchComponent class="solr.SpellCheckComponent" name="suggest"> 
    <lst name="spellchecker"> 
     <str name="name">suggest</str> 
     <str name="classname">org.apache.solr.spelling.suggest.Suggester</str> 
     <str name="lookupImpl">org.apache.solr.spelling.suggest.fst.WFSTLookupFactory</str> 
     <!-- Alternatives to lookupImpl: 
      org.apache.solr.spelling.suggest.fst.FSTLookupFactory [finite state automaton] 
      org.apache.solr.spelling.suggest.fst.WFSTLookupFactory [weighted finite state automaton] 
      org.apache.solr.spelling.suggest.jaspell.JaspellLookupFactory [default, jaspell-based] 
      org.apache.solr.spelling.suggest.tst.TSTLookupFactory [ternary trees] 

     <str name="comparatorClass">freq</str>--> 
     <str name="sourceLocation ">./../suggest/autoSuggestDic.txt</str> 
     <str name="field">textSuggest</str> <!-- the indexed field to derive suggestions from --> 
     <str name="buildOnCommit">true</str> 
     <bool name="exactMatchFirst">true</bool> 
    </lst> 
    <!-- specify a fieldtype using keywordtokenizer + lowercase + cleanup --> 
    <str name="queryAnalyzerFieldType">text_general</str> 
    </searchComponent> 
    <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest"> 
    <lst name="defaults"> 
     <str name="name">suggest</str> 
     <str name="spellcheck">true</str> 
     <str name="spellcheck.dictionary">suggest</str> 
     <str name="spellcheck.onlyMorePopular">false</str> 
     <str name="spellcheck.count">15</str> 
     <str name="spellcheck.collate">true</str> 
    </lst> 
    <arr name="components"> 
     <str>suggest</str> 
    </arr> 
    </requestHandler> 
+0

你看過[建議器中的字典支持](http://wiki.apache.org/solr/Suggester#Dictionary)嗎? –

+0

是的,我已經通過設置我的suchagest處理程序與我的dic #簡單的自動提示短語字典測試 #注意這使用標籤作爲分隔符! 霍華德\t 100.0 命中\t 3.0 測試\t 3.0 鷹\t 5.0 船尾\t 5.0 顯示\t 5.0 僅供參考我的建議與DIC外觀like--請參閱我的更新問題處理程序,感謝SRIKANTH的建議。 – Rajesh

回答

0

我有這個現在使用Solr 4.7兩種詞典支持和索引字典的工作。

我自認爲處理程序構建HighFrequencyDictionary(這是建立使用我的指數)實例和FileDictionary(這是我作爲

./../autoSuggestDic.dic在solrConfig提到的字典文件。xml)實例

in build(...)方法 和自定義getSuggestions(SpellingOptions選項){..}方法使用這兩個字典進行建議。

這與您的建議條款的提升類似,以提高您的搜索結果。