0
我遇到了solr中集成的拼寫檢查器的問題。 我有(現在)兩個核心,配置相同的solrconfig.xml(具有拼寫檢查器的正確設置)和稍微不同的XML(具有拼寫檢查器相同的配置)。Solr spellcheckin隨機工作
問題是,對於其中一個核心拼寫檢查器完美工作,對於其他沒有。 對於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
之外的所有字段都存儲並使用它們的值編制索引。
即使嘗試創建第三個核心,但它都沒有工作。
您是否重建拼寫檢查索引?如何配置拼寫檢查器? – MatsLindh
該字典爲「IndexBasedSpellChecker」,其中包含對doc提交的更新。拼寫檢查索引被重建(通過查詢Solr Admin)。我甚至嘗試過一個新的核心,但它也有同樣的問題。兩個模式之間唯一的區別是不工作的模式有一個'copyField'屬性作爲源。 PS:運行Solr 5.4.1 – Ghesio
等待 - 複製域屬性作爲源?是否有任何東西被插入到該字段中?你能搜索它正在構建的領域嗎?這兩個字段是如何定義的? – MatsLindh