Хорошее приложение для поиска в Django? - Как выполнить нечеткий поиск с Haystack? - PullRequest
4 голосов
/ 21 января 2010

Я сейчас использую django-haystack с apache-solr в качестве бэкэнда.

Проблема в том, что я не могу заставить приложение выполнять поиск, который я ищу

  1. Поиск подчастей в слове

    например. Поиск «buntu» не дает мне «ubuntu»

  2. Поиск похожих слов

    например. Поиск "ubantu" даст "ubuntu"


Любая помощь будет принята с благодарностью.

1 Ответ

9 голосов
/ 21 января 2010

Это на самом деле о том, как вы передаете запрос обратно в стог сена (и, следовательно, в Solr). Вы можете выполнить «нечеткий» поиск в Solr / Lucene, используя ~ после слова:

ubuntu~

вернет и buntu, и ubantu. См. документацию Lucene по этому вопросу.

Способ передачи через Haystack зависит от того, как вы используете его в данный момент. Предполагая, что вы используете SearchForm по умолчанию, лучше всего было бы переопределить метод clean_q формы, чтобы добавить тильду в конце каждого слова в результатах поиска, или переопределить метод search, чтобы сделать то же самое. перед передачей в SearchQuerySet.

...