我们的 Solr 构建的功能是
http://192.168.1.106:8983/solr/spell?q=query&spellcheck=true&spellcheck.build=true
确实根据我们基于索引的字典成功返回拼写建议
然而 django-haystack 变量 {{suggestion}} 甚至 python 命令 SearchQuerySet().spelling_suggestion("query") 返回“None”。
我们使用 haystack 提供的标准视图和 url。
安装应用程序是 Python 2.7.2、Django 1.3.2、Haystack 2.0、Apache Solr 3.6.1(在标准 Jetty 上运行)、PySolr 2.1。
这是我们正在使用的一些代码:
在 settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://192.168.1.106:8983/solr',
'INCLUDE_SPELLING': True,
},
}
在 /PATH/TO/SOLR/example/solr/conf/solrconfig.xml 中:
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">textSpell</str>
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">text</str>
<str name="spellcheckIndexDir">spellchecker</str>
</lst>
</searchComponent>
<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="df">text</str>
<str name="spellcheck.onlyMorePopular">false</str>
<str name="spellcheck.extendedResults">false</str>
<str name="spellcheck.count">10</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>
所以问题是:代码中的问题在哪里导致已安装的应用程序“干草堆”无法与 Solr 找到的拼写建议的结果进行通信?或者换句话说,为什么 haystack 没有显示拼写建议,而 Solr 提供了一些拼写建议?