【问题标题】:Improving django search改进 django 搜索
【发布时间】:2013-04-26 20:50:24
【问题描述】:

我有以下搜索:

titles = Title.objects.filter(title__icontains=search)

如果这是要查找的内容:

Thomas: Splish, Splash, Splosh

我可以输入“Thomas”或“Thomas: Splish, Splash, Splosh”之类的内容,它会起作用。

但是,如果我输入 "Thomas Splash" 之类的内容,它将不起作用。我将如何改进搜索以执行类似的操作(另请注意,如果我们拆分单词,则应忽略逗号和其他非字母数字 - 例如,拆分单词不应为“Thomas:”、“Splish、 " 而是 "Thomas"、"Splish" 等。

【问题讨论】:

    标签: python mysql django search


    【解决方案1】:

    这种搜索开始突破 django 和 ORM 的界限。一旦达到这种复杂程度,我总是会切换到完全为搜索而构建的系统。我挖lucene,所以我通常会选择ElasticSearchSolr

    请记住,全文搜索本身就是一个子系统,但确实可以为您的网站增加很多价值。

    【讨论】:

      【解决方案2】:

      由于 Django 模型使用数据库查询,因此您无能为力。

      您可以通过非字母数字字符和包含所有单词的搜索对象来拆分搜索,但这并不聪明和高效。

      如果你想要一些真正聪明的东西,也许你应该看看 haystack:

      http://haystacksearch.org/

      【讨论】:

        猜你喜欢
        • 2012-01-29
        • 2013-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-04
        • 2011-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多