我有一個擁有數百萬個文檔的現有Lucene存儲,每個文檔都代表一個實體的元數據。我有幾個Id字段(Id1,Id2 .. Id5),每個文檔可以具有零個或多個此字段的值。索引一次只能由其中一個Ids查詢。我已經獨立編制了這些領域的索引,這一切都很好。我最初選擇使用Lucene,因爲它是迄今爲止查詢如此大量小文檔的最快方式,我對我的決定感到滿意。如何在Lucene中存儲多個不同類型的文檔
但是現在我必須存儲另一種類型的文檔,這些文檔也代表實體的不同類型的元數據,並且具有(Id1,Id2,Id5)的值,並且這些文檔還將分別由這些Ids中的一個查詢。現有的元數據和這組新數據將彼此獨立存儲和查詢。
如何通過Id查詢Lucene,但僅查詢一種類型的文檔。我可以考慮一些選項,但我想知道那些知道的人從經驗中推薦的內容,以便讓Lucene保持可管理性和快速性。
- 使用單獨的Lucene索引。這將避免這個問題,因爲文檔類型是正交的。還有能夠分別讀取和寫入索引的好處。
- 將新文檔的字段Id1..Idn重命名爲XId1 ... XIdn。這樣,一種類型的文檔就不會與另一種類型的文檔具有相同的字段名稱。這似乎更像是一種避免問題的解決方法,而不是實際的解決方案。
- 添加一個數字字段「Type」並將索引號更改爲(Type,Idx)。這種方法看起來很浪費,因爲每個索引都必須包含該類型。
我能夠打破向後兼容性與我現有的設置。如果我添加其他文檔類型,如果解決方案可以重複使用,那將是非常好的。
我會做1.但更多隻是意見 – Paparazzi