Django + HayStack Как сделать этот поиск
-
01-10-2019 - |
Вопрос
Я новичок, чтобы сена и в мир поиска, поэтому я не знал, как задавать этот вопрос.
То, что я хочу достичь, это следующее.
Наличие поискового запроса, как: один два
Я хотел бы вернуть любой контент, как:
- Этот
- один
- два
- два один
- что-то здесь
Это возможно с помощью HayStack + Solr / Xapian? Также возможно иметь релевантность на результате? В случае, когда оба слова попадают, это даст мне больше актуальности.
В настоящее время я использую SearchQuerySet на мой взгляд, но не могу этого достичь.
Ваше здоровье
Решение
Так что вы в основном ищете OR
Введите запрос вправо? По умолчанию HayStack использует AND
Операция для соединения запросов.
Вы можете сделать это два способа:
- Изменять
HAYSTACK_DEFAULT_OPERATOR
в пределах ваших настроек .pyOR
. Отказ Это, очевидно, будет широкое изменение. - Изменить ваше
SearchQuerySet
Форма для использования filter_or. который будет заставитьOR
Стиль поиска. Так что пройдите новый в свою форму / представление:SearchQuerySet.filter_or(**kwargs)
Кроме того, вы всегда можете присоединиться к Джангу Q
Объекты вместе, но учитывая, что у вас есть эти варианты, это, вероятно, ваши лучшие ставки.
Для релевантности вы должны прочитать Лучшие практики Страница, которая находится в использовании шаблонов поиска и заставляет их быть вашим способом показать соответствующий контент.
Надеюсь, это поможет!