mysql - InnoDB 的始终索引的 MySQL 索引/搜索替代品?

标签 mysql sphinx innodb full-text-search

我正在为 MySQL 表使用 InnoDB,显然使用 LIKE 和 RLIKE/REGEXP 的查询会花费很多时间。

我试过了 Spinx ,而且效果很好,除了我必须每隔一段时间重新索引上下文。我可以每分钟重新编制索引,但我想知道是否有 1) Sphinx 中的设置可以始终为记录编制索引,或者 2) 除了 Sphinx 之外还有其他软件可以始终为记录编制索引。

我希望它在插入或更新记录时立即更新索引。

最佳答案

Apache Lucene 之一projects 可能对你最好。

它们旨在为文本内容构建反向索引,包括执行某些自然语言处理的可选功能。 Lucene 是基础项目,最初是用 Java 编写的,但现在也移植到 .Net - 它使用非常有效的基于文件的数据存储。

对于更大的索引,有 Solr 项目,它基本上是一个基于服务的 Lucene 版本,您可以通过 rest-ful 服务访问它。这也有扩展选项,例如通过跨多台机器对索引进行分片。

关于mysql - InnoDB 的始终索引的 MySQL 索引/搜索替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3039299/

相关文章:

mysql - 简单的sql查询非常慢

mysql - 如何选择mysql数据库引擎? InnoDB 或 MyISAM

mysql - 使用不同的 where 子句组合两个 mysql 查询

php - Phalcon - 我如何使用 Phalcon 模型执行 SELECT IN 子查询?

mysql - yii2 join ->with() 记录右表数据到模型

php - 如何更改服务器时区而不影响已插入的数据?

linux - "searchd"显示 "FATAL: bind() failed on 0.0.0.0: Address already in use"

php - sphinx 全文搜索与列过滤

mysql - sphinxsearch 给出缺少属性的错误

php - Muzak 复制建议和技术