我正在尝试为我的网站实施实时搜索。识别给定字符串中的单词或单词的一部分的单词。然后,即时结果会在与查询匹配的位置加下划线。
例如,查询“炒绿西红柿”会产生:
SELECT *
FROM articles
WHERE (title LIKE '%fried%' OR
title LIKE '%green%' OR
title LIKE '%tomatoes%)
这适用于非常小的数据集。但是,一旦数据库中的记录数量增加,此查询很快就会变得低效,因为它无法使用索引。
我知道这在技术上是在FULLTEXT中搜索的是什么,但结果的质量不是很好。
在保持查询效率的同时,有哪些替代方法可以获得高质量的子字符串搜索?
感谢。
答案 0 :(得分:2)
Sphinx将帮助您快速搜索大量数据
答案 1 :(得分:0)
他们是许多FULLTEXT搜索引擎,您可以使用sphinx,Apache Solr,Whoosh(纯粹的python)和Xapian。 django-haystack(如果你使用的是django)可以与最后的3个接口;