我目前正在研究使用sha1哈希,它將以二進制形式存儲在MS Sql Server中(20)。查看Solr 4.x中當前可用的數據類型,似乎足夠大的唯一一個是二進制。但是,我不確定是否使用二進制作爲唯一鍵是一個好主意。此外,在不久的將來,我們將從Solr 4.x獨立遷移到Solr 6.x雲。Solr 4.x:我應該使用二進制作爲唯一鍵嗎?
0
A
回答
1
根據最佳實踐,唯一鍵應該是一個簡短的唯一字符串(例如,請參閱Java UUID)。 使用二進制作爲唯一鍵不是一個好主意,也不建議。 一個可行的解決問題的方法,雖然可以this page從Solr的文檔中找到:
加密哈希
的加密哈希算法可以被認爲是從輸入數據創建N個很 隨機比特。 MD5算法創建128位。 這意味着2個輸入數據集有機會在創建相同MD5的 的2^128中有1個。這有一個標準表達式,即32個十進制字符。 RFC-1321。幾種不同語言的MD5摘要算法 不遵循此標準。標準UUID始終包含創建UUID的時間,其中 排除了上述某些使用情況。您可以作弊並忽略時鐘要求。最好使用UUID文本格式: 550e8400-e29b-41d4-a716-446655440000而不是 550e8400e29b41d4a716446655440000。 (您將閱讀許多這些密鑰。) 使用加密生成的唯一密鑰的一個優點是,您可以通過通配符 選擇一個隨機的文檔子集。如果UUID數據爲 作爲字符串保存爲32位字符的RFC格式 'd3adbe3fdeadb3e4deadbee4deadb3ef',則查詢「id:a *」將選擇整個文檔集合的隨機1/16的 。 「id:aa *」會非常隨機地選擇 文檔集的1/256。統計分析和數據提取項目可以用這個來選擇小的子集而不是 遍歷整個索引。
對於任何版本的Solr,相同的方法都可以很好地工作。
相關問題
- 1. 我應該在這裏使用唯一索引嗎?爲什麼?
- 2. 如果我已經有一個唯一的ID,我應該使用它作爲DataStore鍵嗎?
- 3. 我應該避免使用主鍵並使用索引唯一的列嗎?
- 4. 我應該在TreeMap中使用Double作爲鍵嗎?
- 5. 我應該使用SQL Server關鍵字作爲列名嗎?
- 6. 我應該在Rails插件中包含二進制文件嗎?
- 7. 我應該真的使用外鍵嗎?
- 8. 問題唯一鍵Solr中
- 9. 我應該使用react-router作爲製表符組件嗎?
- 10. 我應該使用@property作爲控制器類變量嗎?
- 11. 二進制與整數 - 作爲主鍵?
- 12. 我應該使用WCF來實現給定的二進制網絡協議嗎?
- 13. 我應該使用redis來存儲大量的二進制文件嗎?
- 14. 對於二進制文件,我應該使用bfiles還是bigfiles?
- 15. 我應該在Silverlight 4中爲MVVM使用ICommand或Expression.Interactions InvokeCommand嗎?
- 16. 應該將yarn.lock作爲git中的二進制文件處理嗎?
- 17. 我應該提交solr文件嗎?
- 18. 我應該爲Environment.TickCount製作一個包裝類嗎?
- 19. Oracle:我應該使用複製嗎?
- 20. 我應該在我的.NET應用程序中使用二進制/ xml文件嗎?
- 21. Solr的4.x和複製收藏
- 22. 我應該使用什麼鍵爲HashMap?
- 23. 我應該爲我的視圖控制器使用singelton嗎?
- 24. 唯一的二進制搜索樹
- 25. 我應該使用固定鍵爲分區創建索引嗎?
- 26. GWT HTTP響應getText()作爲二進制
- 27. Spring Data- MongoRepository:我們可以使用_id作爲二進制類型嗎?
- 28. 我應該爲iPhone SDK 4購買iPad或iPhone 4嗎?
- 29. 我應該爲此使用BlazeDS嗎?
- 30. 我應該在postgresql 9.3中使用散列或btree作爲外鍵索引嗎?
我們正在使用MS SQL Server和Solr 4.x(目前是獨立的,但移動到SolrCloud)。我使用sha1哈希算法來避免重複(所以使用solr或sql來生成uuid ...雖然我不知道我可以刪除Java中的時鐘組件,它可能產生相同的哈希給定相同的輸入字符串(?)我需要的是: 1. Java比較solr字段和MS sql列 2. Solr比較solr字段和數據導入上的MS sql列 不幸的是MS SQL hashbytes()返回varbinary() 20) – BillS
我最終做的是使用apache-codec DigestUtils.shaHex(「some string」)來創建一個唯一的十六進制字符串鍵,它是sql中的主鍵和solr中的唯一鍵,我對它的想法越多,我覺得用二進制作爲solr的一個關鍵是不舒服的,謝謝你的幫助 – BillS