4

Lucene Feauturesの公式サイトでは、luceneは「マージされた結果を使用した複数インデックス検索」をサポートしていると述べています。

どういうわけか休止状態の検索でこれを行うことは可能ですか?

私のユースケース:コメント付きのAricle。記事用とコメント用の2つの別々のインデックスが必要です。コメントの一つでマッチでも記事を見つけられるようにしたいと思います。ユーザーの観点から、記事のテキストとそのコメントを「調べて」、記事のリストを返す検索が必要です。(すべてのコメントを記事ドキュメント内のフィールドとして保存することでこれを実装できることはわかっていますが、コメント内の検索にフィルターを適用したいと思います。)

ネイティブのLuceneまたはI/mが完全に要点を見逃している場合でも可能ですか?

4

2 に答える 2

4

あなたの説明全体が曖昧に思えます。Hibernate Search は、たとえば OneToMany アソシエーションを介して何らかの形でコメントにリンクされた記事を意味する適切なドメイン モデルを持っている場合、ユース ケースに適しているように思えます。記事とコメントの間に関係がない場合、コメントがどの記事に属しているかをどうやって知ることができますか?

このようなドメイン モデルを使用すると、ユース ケースが解決されます。記事とコメントを検索できますが、記事のリストを返すことができます。

とはいえ、Article と Comment に個別の Lucene インデックスを保持することは可能です。実際、各クラスに @Indexed を追加すると、クラスごとに 1 つのインデックスが作成されます。ただし、検索はより複雑になります。

Article で @Indexed を使用し、Article の Comment に適切にマッピングされた関係を持ち、@IndexedEmbedded を使用することをお勧めします。

もっとヘルプが必要な場合は、ドメイン モデルを投稿するか、要件/ユースケースに関する詳細情報を提供する必要があります。

――ハーディー

于 2009-07-09T08:52:08.180 に答える
2

各記事に ID を付与する方が簡単です。次に、コメントを記事の外に保存しますが、コメントがどの記事についてのものかを示すフィールドを付けます。両方のインデックス (または「article」と「comment」という異なるフィールドを持つ同じインデックス) を検索してから、記事 ID でマージします。このようにして、記事クエリとコメント クエリの結果に個別にフィルターを設定できます。

于 2009-07-08T19:39:46.550 に答える