|
|
1
57
随着MyISAM的逐步淘汰, InnoDB full-text search (FTS) is finally available in MySQL 5.6.4 release. https://dev.mysql.com/doc/refman/5.6/en/innodb-fulltext-index.html . 虽然其他引擎有很多不同的功能,但这个是InnoDB,所以它是原生的(这意味着有升级路径),这使它成为一个值得选择的选择。 |
|
|
2
50
我可以保证MyISAM全文是一个糟糕的选择——即使抛开MyISAM表的各种问题不谈,我也看到全文内容偏离了轨道,开始自我损坏,MySQL经常崩溃。 一个专用的搜索引擎肯定是这里最灵活的选择——将帖子数据存储在MySQL/innodb中,然后将文本导出到您的搜索引擎。你可以很容易地设置定期的完整索引构建/发布,如果你觉得需要并想花时间的话,可以添加实时索引更新。 Lucene和Sphinx都是不错的选择 Xapian ,既美观又轻便。如果你选择Lucene的路线,不要以为Clucene会更好,即使你不想与Java搏斗,尽管我真的没有资格讨论两者的优缺点。 |
|
3
11
Sphinx让我失望的一点是,它不太支持增量插入。也就是说,在插入后重新索引非常昂贵,他们推荐的解决方案是将数据拆分为较旧的、不变的行和较新的、易失性的行。因此,你的应用程序进行的每次搜索都必须搜索两次:一次在较大的索引上搜索旧行,另一次在较小的索引上查找最近的行。如果这不能与您的使用模式集成,那么这个Sphinx就不是一个好的解决方案(至少在当前的实现中不是)。 我想指出您可以考虑的另一种可能的解决方案: Google Custom Search 。如果您可以在web应用程序中应用一些SEO,那么请将索引和搜索功能外包给谷歌,并在您的网站中嵌入谷歌搜索文本字段。这可能是使您的网站可搜索的最经济和可扩展的方式。 |
|
4
3
|
|
|
5
1
|
|
|
6
0
试试这个
|
|
|
7
0
|
|
|
8
0
如果其他一切都失败了,总有 soundex_match ,遗憾的是,这并不是真的很快准确 |
|
|
9
0
对于那些被困在旧版本的MySQL/MariaDB上的人(即CentOS用户),其中InnoDB不支持全文搜索,我在使用InnoDB表时的解决方案是为我想搜索的东西创建一个单独的MyISAM表。
然后,我使用全文搜索MyISAM表,并对InnoDB表进行内部连接。 MyISAM表的内容可以通过触发器或应用程序的模型保持最新。
|