2010-07-01 3 views
1

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

Что я хочу достичь, так это следующее.

Имея поисковый запрос, как: один два

Я хотел бы получить вернулся содержание, как:

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

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

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

Приветствия

ответ

1

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

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

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

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

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

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

Смежные вопросы