你如何改进搜索?

时间:2011-07-24 02:06:25

标签: python django search solr django-haystack

我刚刚安装了solr的haystack并创建了一个自定义视图:

from haystack.query import SearchQuerySet
def post_search(request, template_name='search/search.html'):
    getdata = request.GET.copy()
    try:
        results = SearchQuerySet().filter(title=getdata['search'])[:10]
    except:
        results = None
    return render_to_response(template_name, locals(), context_instance=RequestContext(request))

此视图仅返回标题字段上的完全匹配。我怎么做至少像sql LIKE'%string%'(或者至少我认为是这样的)这样的地方如果我搜索'i'或'IN'或'index'我会得到结果'index'?< / p>

您使用haystack或solr编辑的大多数搜索方式也是?

您建议了哪些其他良好做法/搜索改进(请同时提供实施)?

提前感谢一大堆!

1 个答案:

答案 0 :(得分:1)

当您使用Haystack / Solr时,我们的想法是您必须告诉Haystack / Solr您想要为特定对象编制索引。所以说你想在为基本字典键入索引时构建一个find。如果您希望它只匹配前缀,对于单词Boston,您需要告诉它索引BBoBos等等,然后您无论当前搜索表达式是什么,都会发出查询,您可以返回结果。如果你想搜索单词的任何部分,你需要构建后缀树,然后Solr会负责索引它们。

查看Haystack中的模板以获取更多信息。 http://docs.haystacksearch.org/dev/best_practices.html#well-constructed-templates

你提出的问题是相当通用的,它可能有助于详细说明人们在搜索什么。然后,建议如何索引数据会更容易。祝你好运。