【问题标题】:How do you improve search?您如何改进搜索?
【发布时间】:2011-10-11 21:12:21
【问题描述】:

我刚刚安装了 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'?

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

您还有什么其他好的做法/搜索改进建议(也请提供实施)?

提前致谢!

【问题讨论】:

    标签: python django search solr django-haystack


    【解决方案1】:

    当您使用 Haystack/Solr 时,您的想法是您必须告诉 Haystack/Solr 您希望为特定对象索引什么。因此,假设您想在为基本字典键入索引时构建查找。如果您希望它只匹配前缀,对于单词Boston,您需要告诉它索引BBoBos 等,然后您会针对任何当前搜索表达式是,您可以返回结果。如果您想搜索单词的任何部分,您需要构建后缀树,然后 Solr 会负责对它们进行索引。

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

    您提出的问题相当笼统,可能有助于具体说明人们正在搜索的内容。然后建议如何索引数据会更容易。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 2020-12-05
      • 2015-02-15
      • 2014-09-10
      • 2016-01-20
      相关资源
      最近更新 更多