0

これは可能ですか?データベースに直接アクセスすることはできません。データ オブジェクトを介してのみアクセスできます。項目が ArrayList などで返された場合、インデックスを検索できますか?

これが不可能な場合、Lucene (または他のツール) を使用して Java を使用してオブジェクトに対してファジー マッチングを行う方法はありますか?

たとえば、FirstName と LastName を持つ Person オブジェクトがあります。名前のあいまい一致を実行したい。x個のPersonオブジェクトの配列があるとします。各Personオブジェクトをループして名前を比較する効率的な方法はありますか?

4

2 に答える 2

0

これらは私が思いついた可能な解決策です--しかし、FSDirectory にインデックスを保存することはできません (プロジェクトの仕様ではこれが許可されていません)。RAMDirectory の場合、何千もの Person オブジェクトを検索する必要があるため、インメモリ ストレージがこの状況に適しているかどうかはわかりません。

大規模なデータセットに対して効率的な、他の種類のあいまい一致アルゴリズムを使用できますか?

于 2011-01-28T17:20:25.713 に答える
0

これらのデータ オブジェクトを取得し、必要なフィールドを保存して、個別の Lucene インデックスを構築します。Person の例を使用すると、すべての Lucene ドキュメントは [Id, FirstName, LastName] になります。このインデックスを検索すると、データベースにクエリを実行して完全なデータ オブジェクトを取得するために必要な Id が返されます。

実際のインデックス作成は簡単です。必要なのは、データ オブジェクトのリストを取得して反復し、Lucene ドキュメントを生成して、IndexWriter を使用して保存するだけです。永続ストレージのファイルシステム ディレクトリまたはメモリ内ストレージのいずれかに対して作業できます。

于 2011-01-28T04:59:01.773 に答える