我现在正在使用 django-haystack 以 apache-solr 作为后端。
问题是我无法让应用执行我正在寻找的搜索功能
搜索单词中的子部分
eg. Searching for "buntu" does not give me "ubuntu"
搜索相似词
eg. Searching for "ubantu" would give "ubuntu"
非常感谢任何帮助。
最佳答案
这实际上是关于如何将查询传递回 Haystack(以及因此传递给 Solr)的。您可以在 Solr/Lucene 中通过在单词后使用 ~
进行“模糊”搜索:
ubuntu~
将同时返回 buntu
和 ubantu
。查看Lucene documentation对此。
如何通过 Haystack 传递它取决于您目前如何使用它。假设您使用默认的 SearchForm,最好的办法是覆盖表单的 clean_q
方法以在搜索结果中的每个单词的末尾添加波浪号,或者覆盖 search
方法在将其传递给 SearchQuerySet 之前执行相同的操作。
关于python - 一个好的 django 搜索应用程序? — 如何用Haystack进行模糊搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2110411/