我读到MySQL 全文搜索会导致表锁定。这意味着人们在搜索表时无法插入或更新表。
我读到有很多搜索服务器(Lucence和Sphinx)可以在没有表锁定的情况下做到更快。它需要很多配置并且难以实施。
有没有其他方法可以在不使用搜索服务的情况下使用全文或类似搜索?我不想再配置MySQL以外的其他服务器。
答案 0 :(得分:2)
创建一个额外的表格,该表格仅用于执行FULLTEXT搜索。在您的代码中,您必须确保将所有数据和操作(创建,更新,删除)正确复制到此表。如果您的数据表正在运行,此解决方案也很方便,例如InnoDB引擎。
答案 1 :(得分:1)
Apache Lucene不需要许多配置,并且难以实现。此外,它是最流行的全文搜索引擎之一,并允许用户进行非常精确的查询,如“成为或不成为”,j?hn d?e,func *等。
我已经使用Lucene进行了一些数据库索引,所以如果你能更精确地指出你想要索引哪些表的哪些字段,我可以给你一些应该做的技巧。
答案 2 :(得分:0)
无论如何,我投票支持Sphinxsearch。它有一个接近Mysql的API,易于安装和配置。不像Apache Lucene那么通用,但在我的项目中快速且非常有用。