目前我們正在使用SQL Server和Lucene的組合來索引關於域名的一些關係數據。我們有一個域名錶格和約10個其他各種其他表格,用於計算和存儲關於域名的不同指標的歷史記錄。例如:Solandra取代我們的Lucene + RDBMS?
域
- 標識BIGINT
- 域NVARCHAR
- IsTracked BIT
SeoScore
- 標識BIGINT
- 域ID BIGINT
- 得分INT
- 時間戳DATETIME
我們正在努力包括在我們的數據庫中所有的主要區域文件的域,所以我們最終尋找大約600萬條記錄,這似乎在SQL Server中進行擴展會有點麻煩。鑑於我們依賴Lucene來做一些相當先進的查詢,Solandra似乎可能是一個不錯的選擇。我很難不用關係數據庫術語來思考我們的數據。
SeoScore表將映射一個到多個域(每次計算得分時都有一個記錄)。我認爲用Solandra的話來說,實現這一目標的最好方法是使用兩個索引,一個用於域,一個用於SeoScore。
下面是查詢的情況,我們需要實現:
一個最新的指標的「當前快照」每個域(所以最新SeoScore給定域我假設我們會發現我們首先需要Domain記錄,然後運行更多查詢以分別獲取每個度量的最新快照。
SeoScores自x日期時間以來沒有被檢查過,並且IsTracked = 1,所以我們知道哪些需要重新計算,我們需要某種配料系統,這樣我們就可以'檢查'域和在不重複的情況下對其進行計算。
我在這裏偏離軌道嗎?在這種情況下,基本上將我們的表格映射到索蘭德拉的單獨索引是否正確?
UPDATE
這裏是什麼,我想一些JSON對象:
Domains : { //Index
domain1.com : { //Document ID
Middle : "domain1", //Field
Extension : "com",
Created : '2011-01-01 01:01:01.000',
ContainsDashes : false,
ContainsNumbers : false,
IsIDNA : false,
},
domain2.com {
...
}
}
SeoScores : { //Index
domain1.com { //Document ID
'2011-02-01 01:01:01.000' : {
SeoScore: 3
},
'2011-01-01 01:01:01.000' : {
SeoScore: -1
}
},
domain2.com {
...
}
}
只需使用彈性搜索。 – bmargulies