【问题标题】:Always-indexed MySQL indexing/searching replacements for InnoDB?InnoDB 的始终索引 MySQL 索引/搜索替代品?
【发布时间】:2010-06-14 17:14:26
【问题描述】:

我正在为 MySQL 表使用 InnoDB,显然使用 LIKE 和 RLIKE/REGEXP 的查询可能需要很长时间。

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

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

【问题讨论】:

    标签: mysql sphinx innodb full-text-search


    【解决方案1】:

    Apache Lucene 项目中的一个可能最适合您。

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

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

    【讨论】:

      【解决方案2】:
      1. 您确定您的文本被索引为全文吗?
      2. 尝试使用 like 或 boolean 匹配来代替正则表达式。

      【讨论】:

      • 恰恰相反;我确定不是。 InnoDB 不提供 FULLTEXT 索引。我不能进行布尔匹配而不是正则表达式匹配,因为我的 UI 提供了使用存储过程的 REGEX 搜索。 LIKE(或等价物)也是一项要求。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      相关资源
      最近更新 更多