我使用拼写检查组件,当我请求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>
答案 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 中的相关行,将会有所帮助。