2

Lucene および Derby データベースを使用しています。Lucene にはテキスト索引が含まれ、Derby には追加のユーザー・データに関する情報があります。たとえば、各ドキュメントにはタグがあります。この目的のために、Derby データベースには 2 つのテーブルがあります。

タグ:

ID

名前

LUCENETAGS :

ID

LUCENEID (フィールドではなく、Lucene の docID)

TAGID

ユーザーが次のようなものを検索できるようにしたい:

非常に興味深いテキストとタグ:楽しい

タグが Lucene フィールドになるように構造を変更することはできません。

ありがとうございました!

4

1 に答える 1

0

単純に Lucene でテキスト検索を実行し、クエリの結果に基づいて結果を Derby にフィルター処理する必要があると思います。

特定のタグに一致するドキュメントがほとんどない場合は、クエリ対象の ID をデータベースにクエリし、クエリを次のように書き直すこともできます。

(very interesting text) AND id:(1 2 3 etc.)

おそらく実現不可能ですが、タグがかなりまばらな場合は、検討する価値があるかもしれません。

しかし、なぜフィールドをインデックスに追加できず、Derby データベースに格納された値が複製されないのか不思議に思います。宣言された構造から必要なものを取得するために選択した実装では、データがインデックスでも利用できる場合よりも、パフォーマンスが大幅に低下し、処理が複雑になります。

于 2013-01-14T22:49:34.310 に答える