4

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

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

  1. 搜索单词中的子部分

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

  2. 搜索相似词

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


任何帮助将不胜感激。

4

1 回答 1

9

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

ubuntu~

将返回buntuubantu。请参阅Lucene 文档

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

于 2010-01-21T16:13:46.953 回答