2010-06-14 50 views
1

我使用InnoDB作为MySQL表,显然使用LIKE和RLIKE/REGEXP的查询可能需要很长时间。InnoDB始终索引MySQL索引/搜索替换?

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

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

回答

3

其中Apache Lucene项目可能会对你最好。

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

对于较大的索引,Solr项目基本上是基于服务的Lucene版本,您可以通过rest-ful服务访问该版本。这也可以通过分割多个机器上的索引来进行缩放。

0
  1. 您确定自己的文本被索引为全文吗?
  2. 尝试使用like或boolean match来代替正则表达式。
+0

恰恰相反;我相信它不是。 InnoDB不提供FULLTEXT索引。我不能做布尔匹配而不是正则表达式,因为我的UI提供了使用存储过程的REGEX搜索。 LIKE(或同等学历)也是一项要求。 – 2010-06-15 19:05:52