3

我尝试了 Haystack 网站http://django-haystack.readthedocs.org/en/latest/tutorial.html上给出的基本教程,它在基本搜索中运行良好。但是它的搜索无效,因为假设我的Note模块有 3 个text字段条目。

  1. Twitter Bootstrap 设计师需要设计/编辑网站主题
  2. 在 Ubuntu 上使用 mod_wsgi、virtualenv 的 Django (python) 应用程序
  3. Python 考试将在拉贾斯坦邦举行。

当我搜索

python结果:2 & 3文本字段。

python exam结果:第三个文本字段

但是当搜索python flask它时什么结果都没有。我想要第二个和第三个结果,因为有python关键字。

boot没有搜索结果时,它应该显示第一个结果,它boot引导词中。

再次搜索pyton时没有结果,但它应该显示第二个和第三个结果,因为它只有 1 个字符从pythonh中丢失。

再次搜索bootstrap django时没有结果,但它应该显示第一个和第二个结果。

所以,看起来我缺少干草堆的一些高级设置。

我怎样才能使它更有效的搜索,以便它提供更好的结果,而不仅仅是简单的直接匹配?

4

1 回答 1

5

我已将您的各种问题作为内联回复进行了回复。

但是当搜索 python 烧瓶时,它什么也没有。我想要第二个和第三个结果,因为有 python 关键字。

您想将 haystack 运算符从 更改ANDOR。有关更多信息,请参阅http://django-haystack.readthedocs.org/en/v2.1.0/settings.html#haystack-default-operator

当搜索引导没有结果,但它应该显示第一个结果,它在引导字中引导。

查看NgramFieldEdgeNgramField部分匹配。

当再次搜索 pyton 时没有结果,但它应该显示第二个和第三个结果,因为它只有 1 个字符 h 从 python 中丢失。

查看 haystack 的拼写建议:http ://django-haystack.readthedocs.org/en/latest/searchqueryset_api.html#spelling-suggestion

当再次搜索 bootstrap django 时没有结果,但它应该显示第一个和第二个结果。

这是由 haystack 操作员配置的。


Haystack 2.0+ 的示例配置,默认运算符设置为ORandINCLUDE_SPELLING=True

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://localhost:9001/solr/default',
        'INCLUDE_SPELLING': True,
    },
}
HAYSTACK_DEFAULT_OPERATOR = 'OR'
于 2013-08-11T05:15:34.297 回答