ファセットが有効なLuceneの最新バージョンを使用しないと、マルチファセットヒットカウントを実装しようとしています。私は始めるには素晴らしい投稿を見つけましたが、多価値ファセットの次のステップについてはわかりません。以下の例は、単数の例のコードを示しています。カテゴリフィールド、および各フィールドのカウントを取得します。Lucene .NETマルチファセット
private static void FacetedSearch(string indexPath, string genre, string term)
{
// create searcher
var searcher = new IndexSearcher(indexPath);
// first get the BitArray result from the genre query
var genreQuery = new TermQuery(new Term("genre", genre));
var genreQueryFilter = new QueryFilter(genreQuery);
BitArray genreBitArray = genreQueryFilter.Bits(searcher.GetIndexReader());
Console.WriteLine("There are " + GetCardinality(genreBitArray) + " document with the genre " + genre);
// Next perform a regular search and get its BitArray result
Query searchQuery = MultiFieldQueryParser.Parse(term, new[] {"title", "description"},
new[] {BooleanClause.Occur.SHOULD, BooleanClause.Occur.SHOULD},
new StandardAnalyzer());
var searchQueryFilter = new QueryFilter(searchQuery);
BitArray searchBitArray = searchQueryFilter.Bits(searcher.GetIndexReader());
Console.WriteLine("There are " + GetCardinality(searchBitArray) + " document containing the term " + term);
// Now do the faceted search magic, combine the two bit arrays using a binary AND operation
BitArray combinedResults = searchBitArray.And(genreBitArray);
Console.WriteLine("There are " + GetCardinality(combinedResults) +
" document containing the term " + term + " and which are in the genre " + genre);
}
しかし、私は、例えば二つの別々のフィールドを、持っている場合カテゴリーやトピック、私が持っていることができるように:私のUIで
カテゴリ1 1、カテゴリ
Topic1、Topic2
を、これらの各チェックボックスであれば、私が選択することができますcategory1とcategory2の両方の場合、topic1、topic2の数はcategory1を選択した場合とは異なります。
その複数のインスタンスのビット配列の検索方法がわかりません。
どの名前空間が 'QueryFilter'ですか? –