4

Luceneを使用してアプリケーションにフィルター/検索機能を実装したいと思います。

Luceneインデックスをクエリすると、インスタンスが表示されます。これは、条件に一致する Hitsのリストにすぎません。Document

オブジェクトからインデックス付きDocumentのを生成するので、特定のLuceneに関連する元のオブジェクトを見つけるための最良の方法はDocumentどれですか?


私の状況のより良い説明:

  • 今のところ、3つのモデルクラス:(FolderFolderのsまたは Listsを子としてList持つことができます)、(Tasksを子として持つことができます)、および Task(他Taskのsを子として持つことができます)。それらはすべて DefaultMutableTreeNodeサブクラスです。Tag将来的にエンティティを追加します。
  • それぞれTaskにテキスト、開始日、期日、いくつかのブールフラグがあります。
  • それらはで表示されますJTree
  • ホールツリーはXMLファイルに保存されます。
  • 私はこれらのようなことをしたいです:
  • TaskGoogleのようなクエリで 検索します。
  • Task今日から始まる すべてのを検索します。
  • TaskでsをフィルタリングしTagます。
4

2 に答える 2

3

バニラ Lucene ではできません。オブジェクトをドキュメントに変換し、そのドキュメントを Lucene に保存したとおっしゃいましたが、そのプロセスが元に戻せるとどのように想像できますか?

Lucene で独自のオブジェクトを保存および取得する場合は、代わりにCompassを使用することを強くお勧めします。Lucene にとっての Compass は、JDBC にとっての Hibernate と同じです。オブジェクトと Lucene ドキュメント間のマッピングを定義すると、Compass が変換を処理します。

于 2009-09-24T15:14:37.970 に答える
3

オブジェクト識別子を含む「保存」フィールドを追加します。ヒットごとに、識別子を介して元のオブジェクトを検索します。

より多くのコンテキストを知らなければ、より具体的にすることは困難です。

于 2009-09-24T15:15:14.053 に答える