Our Solr build is functioning as
http://192.168.1.106:8983/solr/spell?q=query&spellcheck=true&spellcheck.build=true
does successfully return spelling suggestions based off our index based dictionary
However the django-haystack variable {{suggestion}} or even python command SearchQuerySet().spelling_suggestion("query") return "None".
We use the standard view and url provided by haystack.
The install apps are Python 2.7.2, Django 1.3.2, Haystack 2.0, Apache Solr 3.6.1 (running on standard Jetty), PySolr 2.1.
Here is some of the code we are using:
In settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://192.168.1.106:8983/solr',
'INCLUDE_SPELLING': True,
},
}
In /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>
So the question is: where is the issue in the code to cause the installed app 'haystack' to not communicate with the results for spelling suggestions Solr is finding? Or in otherwords, why does haystack show no spelling suggestions while Solr provides some?
Do you have the INCLUDE_SPELLING setting defined as True in the CONNECTIONS in your Django settings file? http://django-haystack.readthedocs.org/en/latest/searchqueryset_api.html#spelling-suggestion
One thing that may be helpful is to see exactly what Haystack is sending to Solr. You can add a print statement into the SolrBackend class in Haystack's backends/solr_backend.py in the search function so you can see the URL being used. That would at least show you if Haystack is doing the search suggestion as ordered.
You may also want to check for Haystack updates direct from the Github repo. The development there is pretty active.