2013-05-22 1 views
3

Я подвожу None в проверке орфографиипроверка орфографии с стогом

первым я внес изменения в settings.py

HAYSTACK_CONNECTIONS = { 
    'default': { 
     'ENGINE': 'haystack.backends.solr_backend.SolrEngine', 
     'URL': 'http://127.0.0.1:8983/solr', 
     'INCLUDE_SPELLING': True, 
    }, 
} 

внесены изменения в search_indexes.py

class JobIndex(indexes.SearchIndex, indexes.Indexable): 
    text = indexes.CharField(document=True, use_template=True) 
    post_type = indexes.CharField(model_attr='post_type',faceted=True) 
    job_location = indexes.CharField(model_attr='job_location',faceted=True) 
    job_type = indexes.CharField(model_attr='job_type',faceted=True) 
    company_name = indexes.CharField(model_attr='company_name',faceted=True) 
    job_title = indexes.CharField(model_attr='job_title', faceted=True) 
    start_date = indexes.DateField(model_attr='start_date', faceted=True) 
    end_date = indexes.DateField(model_attr='end_date', faceted=True) 
    job_description = indexes.CharField(model_attr='job_description', faceted=True) 
    country = indexes.CharField(model_attr='country', faceted=True) 
    suggestions = indexes.FacetCharField() 

    def prepare(self, obj): 
     prepared_data = super(JobIndex, self).prepare(obj) 
     prepared_data['suggestions'] = prepared_data['text'] 
     return prepared_data 

    def get_model(self): 
     return jobpost 

    def index_queryset(self,**kwargs): 
     return self.get_model().objects.all() 

Затем сделали solr_schema заменить он перестроит index..looked solrconfig.xml для соответствующих chnages. Испытано через Джанго оболочки

>>> from haystack.query import SearchQuerySet 
>>> sqs = SearchQuerySet().auto_query('spider') 
>>> suggestion = sqs.spelling_suggestion() 
>>> print suggestion 

Ни

не получил ни одного.

Может ли кто-нибудь мне помочь?

ответ

0

Для проверки орфографии с помощью SearchQuerySet вам необходимо привязать компонент проверки орфографии к стандартным обработчикам запросов.

Это делается путем добавления этого к вашему RequestHandler по умолчанию в файле solrconfig.xml:

<arr name="last-components"> 
    <str>spellcheck</str> 
    ...   
</arr> 

Для получения дополнительной информации см эту тему: Solr spelling suggestions returns 'None'

1

Вы должны перестроить индексы с помощью следующей команды:

python manage.py rebuild_index

От the docs:

Чтобы работать, вы должны установить INCLUDE_SPELLING в словаре настроек вашего подключения в значение True, после чего вы должны перестроить свой индекс. В противном случае, None будет возвращен.