[英]Issue with distributed spelling check in Solr Cloud
我正在從主從配置遷移到Solr Cloud。 我要遷移到的Solr版本是4.4。 我有2個碎片,每個碎片1個副本。 我面臨一個有關拼寫建議的問題。 我已經打開了請求處理程序中的拼寫組件。 想法是帶回建議(如果有)作為查詢響應的一部分。
<str name="spellcheck">on</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.onlyMorePopular">false</str>
<str name="spellcheck.extendedResults">false</str>
<str name="spellcheck.count">1</str>
<str name="spellcheck.dictionary">default</str>
</lst>
<!-- append spellchecking to our list of components -->
<arr name="last-components">
<str>spellcheck</str>
</arr>
拼寫檢查搜索組件也是非常標准的。
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">spell</str>
<!-- a spellchecker built from a field of the main index -->
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">text</str>
<str name="classname">solr.DirectSolrSpellChecker</str>
<str name="distanceMeasure">internal</str>
<float name="accuracy">0.5</float>
<int name="maxEdits">2</int>
<int name="minPrefix">1</int>
<int name="maxInspections">5</int>
<int name="minQueryLength">4</int>
<float name="maxQueryFrequency">0.01</float>
<!-- uncomment this to require suggestions to occur in 1% of the documents
<float name="thresholdTokenFrequency">.01</float>
-->
</lst>
<!-- a spellchecker that can break or combine words. See "/spell" handler below for usage -->
<lst name="spellchecker">
<str name="name">wordbreak</str>
<str name="classname">solr.WordBreakSolrSpellChecker</str>
<str name="field">text</str>
<str name="combineWords">true</str>
<str name="breakWords">true</str>
<int name="maxChanges">10</int>
</lst>
</searchComponent>
我在兩個分片中都運行了spellcheck.build = true 。 現在,如果我運行查詢,
http://testhost.com:8983/solr/browse?q=dellll
回應沒有返回任何建議。
但是,如果我顯式添加distrib = false ,則可以得到建議
http://testhost.com:8983/solr/browse?q=dellll&distrib=false
這種失敗的目的是因為我的查詢需要分發,並且我不想為拼寫檢查而單獨查詢。
任何對此的指針將不勝感激。
我已經找到了解決方案。您需要做的是作為其他參考解決方案的參考。
為了使拼寫建議在分布式Solr環境中起作用,您需要在查詢中添加shards.qt 。 應該將其設置為您正在使用的請求處理程序的名稱。 例如,如果您正在使用/ select請求處理程序,則需要使用/ spell請求處理程序。 查詢如下所示:
http://testhost.com:8983/solr/select?q=dellll&shards.qt=/spell
對於自定義請求處理程序,qt應該與請求處理程序相同。
http://testhost.com:8983/solr/customhandler?q=dellll&shards.qt=/customhandler
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.