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

标签 python django solr django-haystack fuzzy-search

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

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

  1. 搜索单词中的子部分

    eg. Searching for "buntu" does not give me "ubuntu"

  2. 搜索相似词

    eg. Searching for "ubantu" would give "ubuntu"


非常感谢任何帮助。

最佳答案

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

ubuntu~

将同时返回 buntuubantu。查看Lucene documentation对此。

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

关于python - 一个好的 django 搜索应用程序? — 如何用Haystack进行模糊搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2110411/

相关文章:

python - 为什么 pytorch Docker 镜像没有附带 torch?

json - 需要 Firebase JSON 的 Django 应用程序的 Heroku 配置?

python - django 会搞乱 python 的日期时间吗?

solr - 什么是 solr 聚类组件

solr - 黑子与 jruby

python - 如何从 ubuntu 服务器以编程方式登录 Yahoo

python - 如何处理 "Too many values to unpack"

linux - Solr从4.7升级到5.3

c# - 在 64 位上没有修改权限的情况下,从 UNC 路径加载 .Net 程序集失败

python - 重建 Django 开发服务器数据库