2011-02-26 91 views
0

我正在研究思維獅身人面像,因爲它有潛力解決索引問題。看起來它有一個非常簡單的specific API來告訴它在模型上索引哪些字段。我不喜歡以這種抽象的方式在我的方式不能避開它。事情是我不相信獅身人面像能夠正確解釋我的模型,因爲這個模型可能有任何可以想象的屬性。基本上,我想在一個RDBMS中編碼JSON。在某種程度上,我期望使RDBMS像MongoDB一樣行事(RDBMS具有我不想沒有的功能)。如果可以通過TS或其他索引來理解我的模型,這可能會起作用。是否可以手動向TS提供鍵/值對?手動指定如何構建索引?

"person.name.first" => "John", "person.name.last" => "Doe", "person.age" => 32, 
"person.address" => "123 Main St.", "person.kids" => ["Ed", "Harry"] 

是否有另一種索引工具,可以從Ruby使用索引JSON?

(順便說一句,我已經探索各種各樣的NoSQL數據庫。我想解決一個非常具體的要求。)

+0

我懷疑你會找到一個預製的插件,可以很好地迎合組織數據庫的非標準方式。我敢打賭,即使Rails本身也是這樣設置的,這是很痛苦的:/ Anywho,Sphinx直接與數據庫交互,所以Ruby不參與索引過程,而Thinking Sphinx將無法處理這個用例。祝你好運,找到一個會! :) – Matchu 2011-02-26 00:23:17

回答

0

基本上,當你指定你想要編制索引的時候 - 也就是說,當你想建立自己的索引時 - 你使用Map/Reduce的Map部分。 CouchDB完全支持這一點。我與Couch碰到的唯一問題是我想查詢其他文檔對象作爲我的Map/Reduce的基礎,因爲這些文檔將包含有關我如何構建索引的元數據。這與Map/Reduce不符,因爲您必須獨立映射文檔而不需要外部數據。如果您需要外部數據,它將會被非規範化到您的文檔中。

0

由於Matchu已經指出了意見,獅身人面像通常直接交互數據庫。這就是思維獅身人面像是如此建造的原因。

但是,獅身人面像(但不是思維獅身人面像)也可以接受XML數據格式 - 所以如果你想沿着這條路走下去,那就隨意吧。如果使用正常的關係數據庫/ ActiveRecord和思維獅身人面像方法,你將不得不深入理解底層的Sphinx結構。 Riddle可能對構建解決方案很有用,但您仍然需要首先了解Sphinx本身。

+0

感謝您的反饋意見。 :) – Mario 2011-02-27 23:56:31