我正在使用FileBasedDictionaryIndex。我有两个文件。我在solrconfig中使用标准请求处理程序设置了searchcomponent,并在模式中使用适当的过滤器定义了一个新的字段类型。
我想知道solr是否自动为字典构建索引,还是需要编写任何代码(我使用Java)来构建字典索引。
答案 0 :(得分:0)
可以将SpellCheckComponent配置为在完成提交或优化时基于Solr索引中的字段自动(重新)构建索引。见http://wiki.apache.org/solr/SpellCheckComponent
更新:我在SOLR用户列表上看到有关此主题的交换之后编辑了这篇文章:FileBasedDictionaryIndex需要至少发出一次spellchecker.build命令(基本上忽略solrconfig.xml上定义的构建/优化触发器)
答案 1 :(得分:0)
我输入此网址以构建拼写检查索引。
http://localhost:8080/solr/select? q=*:*&spellcheck=true&spellcheck.build=true&buildOnCommit=true
我得到了这个结果
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="spellcheck">true</str>
<str name="q">*:*</str>
<str name="buildOnCommit">true</str>
<str name="spellcheck.build">true</str>
</lst>
</lst>
<result name="response" numFound="0" start="0"/>
</response>
我无法理解为什么我的索引没有构建。
答案 2 :(得分:0)
My solrconfig is as below -
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">text_spell</str>
<lst name="spellchecker">
<str name="classname">solr.FileBasedSpellChecker</str>
<str name="name">file1</str>
<str name="sourceLocation">places.txt</str>
<str name="characterEncoding">UTF-8</str>
<str name="spellcheckIndexDir">./spellchecker1</str>
<str name="buildOnCommit">true</str>
</lst>
<lst name="spellchecker">
<str name="classname">solr.FileBasedSpellChecker</str>
<str name="name">file2</str>
<str name="sourceLocation">US.dic</str>
<str name="characterEncoding">UTF-8</str>
<str name="spellcheckIndexDir">./spellchecker2</str>
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
请纠正我。