在Django中使用HayStack + Solr进行高级搜索?

UC4*_*456 3 python django search solr django-haystack

我尝试了在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结果:第3个文本字段

但是在搜索时python flask它什么都没有.我想再次获得第2和第3个结果,因为有python关键字.

当搜索boot没有结果,但它应该显示第一个结果,它boot引导词.

pyton再次搜索时没有结果,但它应该显示第2和第3个结果,因为它只有1个h缺少来自python.

bootstrap django再次搜索没有结果,但它应显示第1和第2结果.

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

如何使其更有效的搜索,以便它给出更好的结果,而不仅仅是直接匹配?

Der*_*wok 5

我已回复您的各种问题作为内联回复.

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

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

当搜索引导没有结果,但它应该显示第一个结果,它已在引导字启动.

看看NgramFieldEdgeNgramField部分匹配.

当搜索pyton时没有结果,但它应该显示第2和第3个结果,因为它只有1个char从python中丢失.

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

当搜索bootstrap django再没有结果,但它应该显示第1和第2结果.

这是由haystack运算符配置的.


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

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://localhost:9001/solr/default',
        'INCLUDE_SPELLING': True,
    },
}
HAYSTACK_DEFAULT_OPERATOR = 'OR'
Run Code Online (Sandbox Code Playgroud)