Как искать во всех моделях Django с Haystack и Whoosh? - PullRequest
2 голосов
/ 05 февраля 2012

Я использую django и стог сена с whoosh, и у меня есть несколько вопросов о них:

1) Когда я пытаюсь найти что-то, я должен выбрать все модели, которые проиндексированы в whoosh.Как настроить систему на поиск значений везде (на всех моделях)?

2) У меня есть окно ввода поиска, но оно не работает с URL-адресами стога сена.Итак, мой шаблон (я использую начальную загрузку):

<form  method="get" action="/search/" class="navbar-search pull-left">
   <input type="text" class="search-query" placeholder="Search">
</form>

И у меня есть URL-адрес поиска, как в учебнике:

(r'^search/', include('haystack.urls')),

Как сказать эту форму, чтобы начать поиск немедленно и отправлять данные встог сена?

Ответы [ 2 ]

0 голосов
/ 06 мая 2012

Для части 2,

, поскольку стог сена использует? Q = для получения запросов, вы должны поместить name = "q" в поле ввода

<form  method="get" action="/search/" class="navbar-search pull-left">
    <input name="q" type="text" class="search-query" placeholder="Search">
</form>

Для части 1,

вы можете поместить в search_indexes.py в каждую папку модели.Не уверен, что есть более эффективный метод.Вы можете использовать ModelSearchView, если хотите предоставить пользователям выбор для поиска моделей.

0 голосов
/ 06 февраля 2012

Вам необходимо создать классы RealTimeSearchIndex в вашем файле search_index.py в корне проекта и зарегистрировать эти индексы с помощью haystack.

Затем вам необходимо переиндексировать данные с помощью команды haystack manage.py reindex.

Затем вам нужно предоставить шаблон для страницы поиска, которую сгенерирует стог сена.

Продолжайте читать документы, все это есть.

...