我正忙于一个程序,该程序需要在网页上查找相似的文本。在SQL中,我们有400.000个搜索词。例如,搜索词可以是“ San Miguel Pale Pilsen”,“ Schaumburger Bali”和“ Rizmajer Cortez”。
现在,我正在检查数据库中网页上的每个单词。对于网页上的每个单词,我都会发送一个带有%like%运算符的选择查询。对于每个结果,我在php中使用相似的文本。如果该单词和搜索词不等于其中的单词数量,它将获得网页中多余的单词以使其相等。 (是的,我知道这并不聪明) 问题在于这需要花费很多时间,服务器必须为此而努力。
在网页上查找相似文本的最佳和最快方法是什么?
答案 0 :(得分:1)
如果您使用LIKE
通配符开始模式,则%
运算符将总是很慢。发生这种情况是因为您要忽略MariaDB使用任何索引的能力。
考虑到您需要在VARCHAR
列的任何位置查找单词,最好的解决方案是实施真正的全文搜索。参见MariaDB的Full-Text Index Overview。
搜索将变得更快,更不用说可扩展性了。