簡體   English   中英

Solr建議完全匹配

[英]Solr suggest exact match

我試圖使solr返回與建議完全匹配,例如:

  • spellcheck.q = tota確實返回結果中的總數但是
  • spellcheck.q = total不會返回結果中的總數

我正在使用此字段獲取建議:

<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
</fieldType>

任何想法如何使Solr返回精確匹配建議?

您正在使用SpellChecker組件,正如其名稱所示,該組件用於拼寫檢查。 它返回應該如何拼寫輸入的建議。 當單詞拼寫正確(等於完全匹配)時,它不返回任何內容,這就是您在列表中看不到該單詞的原因。

從Solr 4.7開始,我們添加了一個新的Suggestion組件,它實際上是為了自動提供而實現的,並產生了你期望的結果。

你可以嘗試這個嗎?

<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="front"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="back"/>
  </analyzer>
</fieldType>

正如在這個維基頁面中提到的: https//cwiki.apache.org/confluence/display/solr/Suggester

To be used as the basis for a suggestion, the field must be stored.

確保存儲您的字段。 您的字段未存儲,因此它返回由您的索引器壓縮的數據。

你的問題來了,因為你使用了基於拼寫檢查組件的舊建議組件(我想你在5之前使用過solr版本)。

使用舊的拼寫檢查/建議,如果單詞匹配則不會在響應中返回!

使用solr.suggestComponent進行測試(如果您的版本中存在)。

請參閱: https//cwiki.apache.org/confluence/display/solr/Suggester

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM