Solr和拼写检查组件:spellcheck.q没有考虑到

时间:2011-08-27 13:00:44

标签: solr spell-checking

我使用拼写检查组件,当我请求solr时,我有结果。但是,如果我使用spellcheck.q,我没有结果。

有人有想法吗?

谢谢

       <!-- The spell check component can return a list of alternative spelling
  suggestions.  -->
 <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
    <str name="queryAnalyzerFieldType">textSpell</str>
    <lst name="spellchecker">
      <str name="name">default</str>
      <str name="field">spellCheck</str>
      <str name="spellcheckIndexDir">./spellchecker</str>
      <str name="buildOnCommit">true</str>
      <str name="accuracy">0.4</str>
      <float name="thresholdTokenFrequency">.0004</float>
    </lst>
  </searchComponent>

<!--<queryConverter name="queryConverter" class="solr.SpellingQueryConverter"/>-->

  <!--  Handler par défaut -->
  <requestHandler name="default" class="solr.SearchHandler" lazy="true" default="true">  
    <lst name="defaults">
      <str name="spellcheck.onlyMorePopular">false</str>
      <str name="spellcheck.extendedResults">false</str>
      <str name="spellcheck.count">10</str>
      <str name="hl.usePhraseHighLighter">true</str>
      <str name="hl.highlightMultiTerm">true</str>
      <str name="hl.mergeContiguous">true</str>
    </lst>
    <arr name="last-components">
        <str>highlight</str>
        <str>spellcheck</str>
     </arr>
  </requestHandler>

2 个答案:

答案 0 :(得分:0)

您是否已将拼写检查组件添加到相应的请求处理程序(在solr配置中),将拼写检查参数设置为 true (或 on )并配置正确的字典使用(如果其名称不同于“默认”)?

答案 1 :(得分:0)

如果您不使用 spellcheck.q 参数,则默认使用 q 参数(来自http://wiki.apache.org/solr/SpellCheckComponent#q_OR_spellcheck.q)。从那个维基:

  

基本上,如果您的应用程序中有拼写“就绪”版本,那么发送spellcheck.q可能会更好,否则,如果您只是想让Solr完成这项工作,请使用q参数

如果更改字段类型的定义,它的工作原理可能是由于新字段类型为“拼写就绪”。如果您发布了正在使用的查询以及 schema.xml 中的相关行,将会有所帮助。