各ドキュメントのランク付けされたタグを含むLucene検索インデックスを設計しています。
例:
Document 1
tag: java , rank 1.2
tag: learning, rank 2.1
tag: bugs, rank 1.2
tag: architecture: rank 0.3
タグは、スコアも割り当てている自動分類アルゴリズムから取得されます。
タグの組み合わせを検索して最も関連性の高い結果を返すことができるように、インデックスを設計するにはどうすればよいですか?例、java+learningを検索します
最初に各タグのFIELDを作成し、ランクを使用して各ドキュメントのフィールドをブーストしました。これはパフォーマンスの観点から良いアプローチですか?10,000個の可能なタグがある場合はどうなりますか?Luceneに10,000のFIELDSがあるのは良い考えですか?
Field tag = new Field(
FIELD_TAG+tag.getId(),
"y",
Field.Store.NO,
Field.Index.NOT_ANALYZED);
tag.setBoost(tag.getRank());
luceneDoc.add(tag);
代わりにすべてのタグを同じフィールドに追加する場合、ランクをどのように考慮することができますか?