【问题标题】:Efficient substring searching in Python with MySQL使用 MySQL 在 Python 中进行高效的子字符串搜索
【发布时间】:2010-10-15 05:46:29
【问题描述】:

我正在尝试为我的网站实施实时搜索。一种识别给定字符串中的单词或单词的一部分的方法。然后,即时结果在与查询匹配的地方加下划线。

例如,查询“Fried green tomato”会产生:

SELECT * 
FROM articles 
WHERE (title LIKE '%fried%' OR
       title LIKE '%green%' OR
       title LIKE '%tomatoes%)

这适用于非常小的数据集。但是,一旦数据库中的记录数量增加,这个查询很快就会变得低效,因为它不能利用索引。

我知道这在技术上是 MySQL 中的 FULLTEXT 搜索的目的,但结果的质量并没有那么好。

在保持查询效率的同时获得非常高质量的子字符串搜索有哪些替代方法?

谢谢。

【问题讨论】:

    标签: python mysql database binary-tree


    【解决方案1】:

    Sphinx将帮助您在海量数据中快速搜索

    【讨论】:

      【解决方案2】:

      它们是许多 FULLTEXT 搜索引擎,您可以使用 sphinxApache SolrWhoosh(它是纯 Python)和 Xapiandjango-haystack(如果您使用的是 django)可以与最后 3 个接口;

      【讨论】:

        猜你喜欢
        • 2016-04-19
        • 1970-01-01
        • 2012-08-28
        • 2020-06-01
        • 2019-04-23
        • 2017-12-02
        • 2014-10-12
        • 2015-12-12
        • 1970-01-01
        相关资源
        最近更新 更多