2012-05-16 55 views
0

所以,這是我的問題。我有這樣的對象用多個標準搜索對象

public class FooClass{ 
    private int fooInt; 
    private String fooString, fooString_2; 
} 

我必須通過它們進行搜索,通過它們的任一參數來區分它們。此外,我需要將它們存儲爲二進制文件(ObjectOutputStream等)。到目前爲止,我認爲使用多ArrayList或多個HashMap但後者的問題是,我需要進行部分字符串匹配的,(beginsWith),所以HashMap會很沒用,我認爲..反正具有相同的多個列表對象在實現方面似乎很糟糕,而且在這一點上,我真的被困住了,並且沒有想法。任何幫助將不勝感激!

+0

爲什麼你不覺得'HashMap'將工作? – gobernador

+0

你有沒有試過使用像[Lucene](http://lucene.apache.org/core/)這樣的文本搜索引擎庫? –

+0

@gobernador'HashMap'如何使用部分字符串匹配?我將不得不檢查所有的鍵,因爲'HashMap'方法通過基於確切的相關鍵檢索值來工作..至少afaik! @Luiggi非常感謝你的建議,我會研究它!我希望它有幫助:) – restInPieces

回答

0

我發現這篇文章:Use search engine technology for object persistence(我還沒有完全閱讀),但我認爲這是你正在尋找的解決方案。該解決方案基於Lucene。

如果你決定使用Lucene的,那麼你應該看看那些tutorials。本教程的一部分還討論了Basic Concepts,這將幫助您決定此解決方案是否適合您。

如果您希望將數據表示爲Java對象(我認爲這是您真正需要的解決方案),那麼使用Compass(建立在Lucene之上)會更好。它支持自動編組,這意味着羅盤提取在運行時對象模型所需的屬性,並插入所需要的元數據到搜索引擎索引..看一看的OSEM - 在對象/搜索引擎映射Compass reference