使用MySQL在Python中进行高效的子串搜索

时间:2010-10-15 05:46:30

标签: python mysql database binary-tree

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

例如,查询“炒绿西红柿”会产生:

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

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

我知道这在技术上是在FULLTEXT中搜索的是什么,但结果的质量不是很好。

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

感谢。

2 个答案:

答案 0 :(得分:2)

Sphinx将帮助您快速搜索大量数据

答案 1 :(得分:0)

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