2010-06-14 80 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