haystack.exceptions.SearchBackendError: Ни в одном из поисковых_индексов не найдено ни одного поля. Пожалуйста, исправьте это перед попыткой поиска

Я пытаюсь реализовать Haystack с помощью whoosh.

Я продолжаю получать эту ошибку, хотя все настроено нормально. Я получаю сообщение об ошибке:

haystack.exceptions.SearchBackendError: No fields were found in any search_indexes. Please correct this before attempting to search.

...когда я пытаюсь выполнить ./manage.py reboot_index

конфигурация:

HAYSTACK_SITECONF = 'myproject'
HAYSTACK_SEARCH_ENGINE = 'whoosh'
HAYSTACK_WHOOSH_PATH = cwd + '/whoosh/mysite_index'

В корневой папке моего проекта есть успешно созданные каталоги whoosh/mysite_index.

*search_sites.py*

import haystack
haystack.autodiscover()

*search_indexes.py*

from haystack.indexes import *
from haystack import site
from myproject.models import *

class ResearchersIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    name = CharFIeld(model_attr='name')

class SubjectIndex(SearchIndex):
    short_name = CharField(model_attr='short_name')
    name = CharField(model_attr='name')
    text = CharField(document=True, use_template=True)

class ResearchIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    abstract = TextField(model_attr='abstract')
    methodology = TextField(model_attr='methodology')
    year = IntegerField(model_attr='year')
    name = CharField(model_attr='name')


class Graph(SearchIndex):
    text = CharField(document=True, use_template=True)
    explanation = TextField(model_attr='explanation')
    type = CharField(model_attr='type')
    name = CharField(model_attr='name')

site.register(Researchers, ResearchersIndex)
site.register(Subject, SubjectIndex)
site.register(Research, ResearchIndex)
site.register(Graph, GraphIndex)

Спасибо


person Tamara    schedule 07.03.2013    source источник
comment
ты тоже делал шаблоны?   -  person anacarolinats    schedule 07.03.2013
comment
да. У меня есть 4 файла .txt в templates/search/indexes/myproject/, соответствующих каждому классу. также я вставил из учебника с сайта шаблон для поиска, search.html и он размещен прямо под директорией search/.   -  person Tamara    schedule 07.03.2013
comment
какую версию стога сена вы используете?   -  person anacarolinats    schedule 07.03.2013
comment
Я использую версию 1.2.7   -  person Tamara    schedule 07.03.2013
comment
ваш HAYSTACK_SITECONF это или вы меняете сюда ставить?   -  person anacarolinats    schedule 07.03.2013
comment
нет, это то. потому что, когда у меня был myproject.search_sites, там не было модуля с именем search_sites.   -  person Tamara    schedule 07.03.2013
comment
поэтому я думаю, что проблема в том, что search_sites не был вызван.   -  person anacarolinats    schedule 08.03.2013
comment
да, это было! пожалуйста, напишите это как комментарий, чтобы я мог выбрать его в качестве ответа, и большое спасибо!   -  person Tamara    schedule 08.03.2013


Ответы (2)


проблема в вашем HAYSTACK_SITECONF. Это должен быть путь к вашему search_sites файлу. Исправьте это, и это должно работать.

person anacarolinats    schedule 08.03.2013
comment
Это больше не правильный ответ: если вы попытаетесь использовать HAYSTACK_SITECONF, вы получите сообщение «не делайте этого». - person GreenAsJade; 11.12.2014
comment
Это ответ для последней версии в апреле 2013 года. - person anacarolinats; 15.12.2014

Убедитесь, что ваш site_indexes.py находится в приложении, которое вы зарегистрировали в INSTALLED_APPS в settings.py.

person chaggy    schedule 31.05.2018