Solr拼写检查随机工作

时间:2017-09-14 16:19:47

标签: solr spell-checking

我遇到了solr中集成的拼写检查程序的问题。 我(现在)有两个核心,配置了相同的solrconfig.xml(具有拼写检查器的正确设置)和稍微不同的XML(具有相同的拼写检查配置)。

问题在于,对于其中一个核心,拼写检查工作完美,而另一个则不然。 对于来自Solr Admin的不工作的我可以看到该字段"拼写" (拼写检查使用的字段)已编入索引,但未存储。

有什么想法吗?

我不认为我可以发布xml文件,因为它们不属于我。

谢谢大家

编辑:

Solrxml.conf

  <requestHandler name="/select" class="solr.SearchHandler">
  ...
  </requestHandler>

  <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
    <lst name="spellchecker">
    <str name="classname">solr.IndexBasedSpellChecker</str>
    <!-- field to use -->
    <str name="field">spelling</str>
    <!-- buildOnCommit|buildOnOptimize -->
    <str name="buildOnCommit">true</str>
    <!-- $solr.solr.home/data/spellchecker-->
    <str name="spellcheckIndexDir">./spellchecker</str>
    <str name="accuracy">0.7</str>
    <float name="thresholdTokenFrequency">.0001</float>
    </lst>
 </searchComponent>

schema.xml(工作)

 <schema name="docs" version="1.5">
 ...
 <field name="fooCore1"     type="text"             indexed="true"  stored="true"   multiValued="false" />

    <!-- Spellcheck -->
     <field name="spelling"             type="text"             indexed="true"  stored="true"   multiValued="false" />
     <copyField source="fooCore1" dest="spelling" />
    ...

    ...
    <solrQueryParser defaultOperator="OR"/>
 </schema>

schema.xml(不工作)

    <schema name="docs" version="1.5">
    ...
      <field name="fooFoo"              type="text"             indexed="true"  stored="true"   multiValued="false" />
      <copyField    source="fooFoo"     dest="fooCore"  maxChars="300000" />
    <!-- Spellcheck -->
    <field name="fooCore2"              type="text"             indexed="true"  stored="true"   multiValued="false" />
    <copyField source="fooCore2" dest="spelling"    maxChars="300000" />
    ...
    </schema>

第二个模式中除spelling之外的所有字段都将被存储并使用其值进行索引。

甚至尝试创建第三个核心,但它都没有工作。

1 个答案:

答案 0 :(得分:0)

似乎copyField不能成为另一个copyField的来源。

针对错误的架构将源从copyfield更改为field,它解决了问题。