2012-03-22 80 views
1

我正在用Ruby和Sinatra製作一個wiki,並且需要搜索存儲爲具有標記的文本文件的wiki中的幾個HTML呈現器(redcarpet,markdown,creole,slim, HAML ..)。 Ruby中有許多選項,如雪貂,solr或lucene gems,它們處理數據庫中的結構化數據,但不用於搜索具有自由文本的文件。索引和搜索ruby和sinatra中的文本文件

現在我打開文本文件並使用regExp進行搜索,但隨着wiki的增長將很快變得太慢。是否有任何寶石可以將地圖中的所有文本文件編入索引,然後使用哪個索引來搜索文件?它需要是一個僅限於Ruby的解決方案或者可以從Ruby輕鬆使用的解決方案。

我沒有使用常見的wiki之一,因爲沒有我需要的功能。

我在幾個老的ASP應用程序中使用Windows索引服務,但是我對這個解決方案並不滿意。

我OS'es是Windows Vista中,7和Windows Server 8

編輯:無數據庫安裝所需的/沒有保持服務器運行的解決方案是優選的,所以例如使用SQLite或文件存儲別謝季河或類似的東西

+0

那麼,你想要搜索什麼樣的東西? – Jwosty 2012-03-22 19:28:37

+0

只是像谷歌字符串,但不需要太多的功能,速度和簡單性更重要 – peter 2012-03-22 20:12:44

+0

啊,好吧。我會看到我能想到的。 – Jwosty 2012-03-22 20:17:53

回答

2

個人而言,我會選擇ElasticSearch:http://www.elasticsearch.org/

這是很容易得到運行,並且有一些的寶石,這使得它很容易從紅寶石與它通信(例如輪胎)

我m沒有意識到任何高性能的基於文本文件的全搜索引擎,所以我真的認爲你最好通過尋找一個簡單的服務器,ElasticSearch提供了imho。

+0

似乎很有趣,易於安裝,很多選項,但降解很好,我正在測試它 – peter 2012-08-02 11:43:34

2

看看ThinkingSphinx,紅寶石橋SphinxActiveRecord之間。使用這個gem將允許您以簡單的方式爲您的模型編制索引,並在您的應用程序的所有模型上執行簡單的搜索和全文搜索。
主頁和項目文檔:如何使用它
http://freelancing-god.github.com/ts/en/
可愛的小介紹:
http://www.synbioz.com/blog/2012/05/18/full_text_search_with_sphinx
相信隨着Sinatra的無縫整合,如果工作與ActiveRecord

+0

我看到MySql是必需的(或幾個其他人),但他們都需要安裝和服務器運行,我寧願沒有安裝/沒有服務器需要的解決方案與例如SQLite或基於文件的存儲 – peter 2012-07-31 18:53:20

1

我一直在Rails 2.3-3.2中使用Solr和SQL和Mongo數據庫,到目前爲止我一直對我很好。看看this railscast。 Solr是由Apache開發的全文搜索Java客戶端,它可以索引微軟文檔,文本文件,富文本文檔 ,甚至在圖像上執行OCR。

+0

你可以給一個簡單的可運行的例子沒有使用rails(我使用sinatra),如果數據庫是必要的,用sqlite? – peter 2012-07-31 18:44:03

+0

@peter太陽黑子(http://sunspot.github.com/)與任何ruby類(無論是activerecord模型還是其他)兼容。請閱讀太陽黑子github頁面和他們的例子。他們爲軌道和非軌道用例做這件事。如果你願意,你可以使用sqlite。他們的wiki頁面也有很好的例子來設置你的開發和生產環境。 – 2012-07-31 19:09:31

+0

找不到一個索引文件並在沒有太多依賴關係的情況下搜索它的簡單示例,您能指給我一個嗎? – peter 2012-07-31 19:13:56