2012-06-14 82 views
1

我读到MySQL 全文搜索可能导致表锁定。这意味着人们在搜索时无法插入或更新表格。MySQL全文搜索的替代方案

我看到有很多搜索服务器(Lucence和Sphinx)可以做到这一点,没有表锁定,甚至更快。它需要很多配置,很难实现

是否有任何其他方式使用全文搜索或一些像这样的搜索,而不使用搜索服务?我不想配置除MySQL以外的其他服务器。

回答

2

创建一个额外的表格,仅用于执行FULLTEXT搜索。在您的代码中,您必须确保将所有数据和操作(创建,更新,删除)正确地复制到此表中。如果你的数据表正在运行,这个解决方案也很方便。 InnoDB引擎。

1

Apache Lucene不需要很多配置而不是难以实现。此外,它是最受欢迎的全文搜索引擎之一,并且允许用户进行非常精确的查询,例如“是或否”,j?hn d?e,func *等。

我已经做了一些与Lucene数据库索引,所以如果你可以更精确地指出你想索引哪些表的哪个字段,我可以给你一些代码,这些代码应该可以做到。

0

无论如何我投票支持Sphinxsearch。它有一个接近Mysql的API,易于安装和配置。不像Apache Lucene那么普及,但是在我的项目中快速且非常有用。