一个很好的django搜索应用程序? - 如何使用Haystack进行模糊搜索?

Rad*_*Hex 4 python django solr fuzzy-search django-haystack

我现在正在使用django-haystack和apache-solr作为后端.

问题是我无法让应用程序执行我正在寻找的搜索功能

  1. 搜索单词中的子部分

    例如.搜索"buntu"不会给我"ubuntu"

  2. 寻找类似的单词

    例如.搜索"ubantu"会给"ubuntu"


任何帮助将非常感谢.

Dan*_*man 9

这实际上是关于如何将查询传递回Haystack(因此也传递给Solr).您可以使用~后面的单词在Solr/Lucene中进行"模糊"搜索:

ubuntu~
Run Code Online (Sandbox Code Playgroud)

将返回buntuubantu.请参阅Lucene文档.

你如何通过Haystack传递这个取决于你现在如何使用它.假设您正在使用默认的SearchForm,最好的clean_q方法是覆盖表单的方法,在搜索结果中的每个单词的末尾添加波浪号,或者search在将其传递给搜索结果之前覆盖该方法以执行相同的操作. SearchQuerySet.