【发布时间】: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