django - django-haystack现场 boost -究竟如何使用?

标签 django boost elasticsearch django-haystack

我所知道的是,this example在建立索引时提高了标题字段的重要性。

如何与 SearchQuerySet 一起使用?
可以使用哪些 InputTypes 和运算符(引号,排除或OR),以及如何将它们混合使用?
可以使用哪种field lookups,目的是什么?

我正在使用ElasticSearch后端。
目标示例:提升其标题(不是任何其他字段)以(或至少包含)查询字符串开头的条目。
总体思路:title__startswith=q以某种方式与content=Raw(q)结合使用,以便我们获得后者的所有结果,并基于前者进行增强。
filter(SQ(title__startswith=q) | SQ(content=Raw(q))似乎对分数没有影响。
连续filter(...)(或&)的工作很奇怪:title__startswith允许标题中出现的内容(即使不是开头的内容)也可以过滤掉标题中不存在的内容。既不是真正的过滤器,也不是纯粹的增强器。

最佳答案

我正在使用Whoosh作为后端。

在类似情况下,在添加Boost = 1.2的CharField或EdgeNgramField后,我注意到结果列表和结果顺序没有变化。

我只能通过将模板文件中的title字段加倍来实现我的目标:

{{object.title}}

{{object.title}}

{{object.body}}

关于django - django-haystack现场 boost -究竟如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22961280/

相关文章:

C++线程数据库类内存混合

java - 从 Elasticsearch 的 JSON 响应形成自定义 JSON 对象

elasticsearch - 同一ES索引下有不止一种类型?

python - 确保目录路径是 Django 项目

python - Django 管理没有错误 - 隐藏高级查找部分

c++ - 在分析 boost::graph 时,是否对顶点和边描述符或它们的迭代器进行操作?

c++ - BOOST - 类模板队列

django - 我应该使用 django-gunicorn 集成还是 wsgi?

python - Django 仅清除详细 View 的缓存

elasticsearch - Elasticsearch索引分析器设置