Luceneを使用して、サイトのコンテンツにインデックスを付け、検索機能を提供しています。また、LuceneのMoreLikeThisを使用して、サイトの「関連ページ」機能を生成します。私のサイトは多言語であるため、MoreLikeThisを一度に特定の言語に制限する必要があります。
誰かがこれを行う方法についてのアイデアを持っていますか?
Luceneを使用して、サイトのコンテンツにインデックスを付け、検索機能を提供しています。また、LuceneのMoreLikeThisを使用して、サイトの「関連ページ」機能を生成します。私のサイトは多言語であるため、MoreLikeThisを一度に特定の言語に制限する必要があります。
誰かがこれを行う方法についてのアイデアを持っていますか?
MoreLikeThisはQueryオブジェクトを返します。
MoreLikeThis mlt = new MoreLikeThis(ir);
Reader target = ... // orig source of doc you want to find similarities to
Query query = mlt.like( target);
言語をチェックする2番目のクエリを作成できます。次に、次を使用して両方のクエリをラップします。次のようにBooleanQueryを作成できます。
パフォーマンス効率はあまり高くありませんが、コーパスが小さい場合は作業が完了します。
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(MoreLikeThisQuery, BooleanClause.Occur.MUST);
booleanQuery.add(languageQuery, BooleanClause.Occur.MUST);
結局、複数のインデックスに分割してから、MLTクエリを実行することになりました。それ以外の場合は、リクエストが重すぎます。Lucene開発者がovすることを願っています