需要建议替代全文搜索

时间:2011-07-25 12:04:41

标签: php mysql

我需要一种轻量级的快速搜索解决方案。

今天我在布尔模式下使用全文,其中每个搜索词在结果中都是必需的。

功能快速,有效且符合要求。

但是一些全文限制http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html似乎是一个问题。该站点位于托管服务器上,我不允许更改mysql设置(例如最小长度)

E.g。  搜索必须能够找到今天全文解决方案无法找到的red11ab.cd

5 个答案:

答案 0 :(得分:2)

http://sphinxsearch.com/正是您要找的

虽然您必须了解较小的单词,但您会发现使用较大的索引。

答案 1 :(得分:1)

使用Lucene,它通常用MySQL实现,它会更快,更有特色。

使用内置的FTS引擎是相对不好的做法,特别是因为它不能与稍微更可靠的InnoDB引擎一起使用。

答案 2 :(得分:0)

唯一可以想到的是,将您的搜索基于您可以找到的出现次数。您的实际索引方法可能会有所不同,具体取决于数据库提供的内容。

假设数据库大小不是问题,(非常)基本方法是将搜索blob(例如,stackoverflow上的帖子)分解为每个单词,将其标准化(删除复数,删除'逻辑'单词,如然后,将每个单词作为新记录插入,以及标识索引资源的ID。

计算ID的实例,按计数排序,更高的数字=更相关。

不完全是我的领域,所以小心翼翼! =]

答案 3 :(得分:0)

我建议你尝试远距离搜索:Levenshtein

或搜索“N-gram全文索引”。

答案 4 :(得分:0)

我还没有用它来解决问题,但是我读了一会儿全文搜索理论(至少用mysql)。

如果内存正确地为我提供了帮助,你可以使用全文搜索来获得你想要的东西,但你需要配置(我认为重新编译)才能让它在少量的搜索字符上工作。我认为它设置为默认的4个字符。您需要将其更改为2个字符,并添加一些其他选项并测试您获得的结果。

如果这不正确,有人会纠正我。我宁愿不把他扔在红鲱鱼身上。