【问题标题】:A good django search app? — How to perform fuzzy search with Haystack?一个好的django搜索应用程序? — 如何使用 Haystack 进行模糊搜索?
【发布时间】:2010-01-21 15:31:17
【问题描述】:

我现在正在使用 django-haystack 以 apache-solr 作为后端。

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

  1. 搜索单词中的子部分

    例如。搜索“buntu”不会给我“ubuntu”

  2. 搜索相似词

    例如。搜索“ubantu”会得到“ubuntu”


非常感谢任何帮助。

【问题讨论】:

    标签: python django solr django-haystack fuzzy-search


    【解决方案1】:

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

    ubuntu~
    

    将同时返回 buntuubantu。请参阅Lucene documentation

    如何通过 Haystack 传递它取决于您目前使用它的方式。假设您使用默认的 SearchForm,最好的办法是覆盖表单的 clean_q 方法以在搜索结果中的每个单词的末尾添加波浪号,或者覆盖 search 方法来做同样的事情在将其传递给 SearchQuerySet 之前。

    【讨论】:

    • 它现在适用于 Lucene 和 Solr。这两个项目已合并,现在有一个共同的代码库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2019-10-15
    • 2016-11-20
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多