Fra*_*llo 9 django solr pysolr django-haystack
各种助推类型如何在django,django-haystack和solr中协同工作?
我无法将最明显的搜索结果首先显示出来.如果我搜索caring for others
并获得10个结果,则带有标题的对象caring for others
在结果之后显示为第二个caring for yourself
.
我有文件提升Category
对象factor = 2.0 - ((the mptt tree level)/10)
因此根节点为1.9,第二级为1.8,第三级为1.7,依此类推.(或190%,180%,170%......等等)
boost=1.5
150%的正面因素推动了产权提升boost=.5
50%的负面因素
我目前没有提高任何搜索条件.
我想得到一个结果列表类别和文章(我忽略文章,直到我得到我的类别结果直接).类别加权高于文章,标题加权高于内容.此外,我正在尝试将根类别节点加权高于子节点.
我觉得我在某个地方错过了一个关键概念.
我正在使用haystack的内置搜索表单和搜索视图.
我正在使用以下package/lib版本:
Django==1.4.1
django-haystack==1.2.7
pysolr==2.1.0-beta
Run Code Online (Sandbox Code Playgroud)
我的索引类
class CategoryIndex(SearchIndex):
"""Categorization -> Category"""
text = CharField(document=True, use_template=True, boost=.5)
title = CharField(model_attr='title', boost=1.5)
content = CharField(model_attr='content', boost=.5)
autocomplete = EdgeNgramField(model_attr='title')
def prepare_title(self, object):
return object.title
def prepare(self, obj):
data = super(CategoryIndex, self).prepare(obj)
base_boost = 2.0
base_boost -= (float(int(obj.level))/10)
data['boost'] = base_boost
return data
Run Code Online (Sandbox Code Playgroud)
我的搜索模板 templates/search/categorization/category_text.txt
{{ object.title }}
{{ object.content }}
Run Code Online (Sandbox Code Playgroud)
我注意到,当我{{ object.content }}
取出搜索模板时,记录开始以预期的顺序出现.为什么是这样?
Dismax 解析器(从 SOLR 3.1 开始还有 ExtendedDismax)正是为了这些需求而创建的。您可以配置要搜索的所有字段(“qf”参数),为每个字段添加自定义增强,并指定短语命中特别有价值的字段(添加到命中的分数;“pf”参数)。您还可以指定搜索中必须匹配的标记数量(通过灵活的规则模式;“mm”参数)。
例如,配置可能如下所示(solrconfig.xml 中请求处理程序配置条目的一部分 - 我不熟悉如何使用 haystack 做到这一点,这是普通的 SOLR):
<str name="defType">dismax</str>
<str name="q.alt">*:*</str>
<str name="qf">text^0.5 title^1.5 content^0.5</str>
<str name="pf">text title^2 content</str>
<str name="fl">*,score</str>
<str name="mm">100%</str>
<int name="ps">100</int>
Run Code Online (Sandbox Code Playgroud)
我不知道 haystack 但它似乎会提供 Dismax 功能: https: //github.com/toastdriven/django-haystack/pull/314
请参阅 Dismax 的此文档(它也链接到 ExtendedDismax): http://wiki.apache.org/solr/DisMaxQParserPlugin http://wiki.apache.org/solr/ExtendedDisMax
归档时间: |
|
查看次数: |
2225 次 |
最近记录: |