如果有全文索引的需求,大部分人会想到使用Elasticsearch,的确,它是一个很好的方案,当数据量并不多时,比如量级十万左右,需要检索的字段并不多,需求并没那么多,是否可以用mysql实现呢?简单总结优缺点如下: | 方案 | 优点 | 缺点 | | :------------ | :------------ | :------------ | |mysql实现 | 实现简单、单个系统不需要考虑同步、支持事务 | 支持数据量小 | | 依赖Elasticsearch | 海量数据、复杂需求、性能较好 | 需要与数据库保持同步、实现复杂、费钱费时 | 我的观点一向很鲜明,可以不用则不用,少引入一个组件,系统的稳定性就好一些。 这篇文章: MySQL 5.7 中文全文检索使用教程 总结的很好了,不过我还改了一个配置才能正常使用, ft_min_word_len=1
,注意一点,建索引时要加 WITH PARSER ngram
。 重点来了:如果没用5.7版本,又想使用中文全文索引,怎么办?
很简单,把每个字符使用Base64编码即可,如果数据量不大,比如就搜索商品名,人名,数据总量也不大,这个方案可以支撑到项目被砍了。 markdown怎么失效了?
mysql5.7中文全文索引配置和使用
最新推荐文章于 2024-04-29 23:47:34 发布