【发布时间】:2010-01-21 15:31:17
【问题描述】:
我现在正在使用 django-haystack 以 apache-solr 作为后端。
问题是我无法让应用程序执行我正在寻找的搜索功能
-
搜索单词中的子部分
例如。搜索“buntu”不会给我“ubuntu”
-
搜索相似词
例如。搜索“ubantu”会得到“ubuntu”
非常感谢任何帮助。
【问题讨论】:
标签: python django solr django-haystack fuzzy-search
我现在正在使用 django-haystack 以 apache-solr 作为后端。
问题是我无法让应用程序执行我正在寻找的搜索功能
搜索单词中的子部分
例如。搜索“buntu”不会给我“ubuntu”
搜索相似词
例如。搜索“ubantu”会得到“ubuntu”
非常感谢任何帮助。
【问题讨论】:
标签: python django solr django-haystack fuzzy-search
这实际上是关于如何将查询传递回 Haystack(因此也传递给 Solr)。您可以在 Solr/Lucene 中通过在单词后使用 ~ 进行“模糊”搜索:
ubuntu~
将同时返回 buntu 和 ubantu。请参阅Lucene documentation。
如何通过 Haystack 传递它取决于您目前使用它的方式。假设您使用默认的 SearchForm,最好的办法是覆盖表单的 clean_q 方法以在搜索结果中的每个单词的末尾添加波浪号,或者覆盖 search 方法来做同样的事情在将其传递给 SearchQuerySet 之前。
【讨论】: