Django + Haystack, как сделать этот поиск - PullRequest
1 голос
/ 01 июля 2010

Я новичок в Haystack и в мире поиска, поэтому я не знал, как задать этот вопрос.

Я хочу достичь следующего:

Наличие поисказапрос типа: один два

Я хотел бы получить любой контент, подобный:

  • Этот
  • один
  • два
  • два один
  • что-то одно здесь

Возможно ли это с Haystack + solr / xapian?Можно ли также иметь отношение к результату?В случае попадания в оба слова это будет более актуально для меня.

В настоящее время я использую SearchQuerySet, но не могу этого достичь.

Cheers

1 Ответ

1 голос
/ 01 июля 2010

Итак, вы в основном ищете запрос типа OR, верно? По умолчанию в стоге сена используется операция AND для объединения запросов.

Вы можете сделать это двумя способами:

  • Измените HAYSTACK_DEFAULT_OPERATOR в вашем settings.py на OR. Это, очевидно, будет изменение всего сайта.
  • Измените свою форму SearchQuerySet, чтобы использовать filter_or , что приведет к поиску в стиле OR. Поэтому передайте новый в вашу форму / представление: SearchQuerySet.filter_or(**kwargs)

Кроме того, вы всегда можете присоединиться к объектам Django Q вместе, но, учитывая, что у вас есть эти варианты, это, вероятно, ваш лучший выбор.

Для актуальности вы должны прочитать страницу Best Practices , которая включает в себя использование шаблонов поиска и делает их вашим способом показа релевантного контента.

Надеюсь, это поможет!

...