SearchComponent
に基づいて Solrのカスタムを作成しようとしていFacetComponent
ます。簡単に言えば、ファセットに表示される同じ用語のリストが必要なだけですが、特定のクエリでその用語を含むドキュメントの数だけを取得するのではなく、その数のカスタム関数と docFreq が必要ですその用語。
のコードを調べFacetComponent
たところ、何らかのDocValuesFacets.getCount
方法でメソッドが使用されていることがわかりましたが、数百行の長さであり、必要なファセット結果の種類ごとに確認してください。ファセットを構築する用語とその数が取得されます。
私が自分のことをしたいフィールドは常にsingleValuedなので、本当に必要なのは次のような非常に単純なものだけです:
private NamedList<Double> myCustomFacet(DocSet docs, String fieldName) {
NamedList<Double> results = new NamedList<Double>();
List<Term> terms = functionThatGetTheListOfTerms(docs, fieldName); //how do I get this?
for (term: Terms){
Integer numDocs = searcher.numDocs(new TermQuery(term), docs);
Integer docFreq = searcher.docFreq(luceneTerm);
results.add(term, myCustomMetric(numDocs, docFreq);
}
return results;
}
では、DocSet とフィールド名が与えられた場合、その DocSet のフィールドで可能な用語を取得するにはどうすればよいでしょうか?