2

我读到 MySQL全文搜索会导致表锁定。这意味着人们在搜索表格时无法插入或更新表格。

我读到有许多搜索服务器(Lucence 和 Sphinx)可以在没有表锁定的情况下完成它,甚至更快。它需要许多配置并且难以实施

有没有其他方法可以在不使用搜索服务的情况下使用全文或类似的搜索?我不想再配置一台 MySQL 以外的服务器。

4

3 回答 3

2

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

于 2012-06-14T08:44:55.393 回答
1

Apache Lucene 不需要太多配置,也不难实现。此外,它是最流行的全文搜索引擎之一,允许用户进行非常精确的查询,如“to be or not to be”、j?hn d?e、func* 等。

我已经使用 Lucene 进行了一些数据库索引,因此如果您可以更精确地确定要索引哪些表的哪些字段,我可以给您一些代码片段,它们应该可以解决问题。

于 2012-06-14T08:45:34.503 回答
0

无论如何,我投票给 Sphinxsearch。它具有接近 Mysql 的 API 之一,易于安装和配置。不像 Apache Lucene 那样通用,但在我的项目中快速且非常有用。

于 2013-01-09T09:07:10.223 回答