我正在尝试根据SearchComponent
为Solr创建自定义FacetComponent
。简而言之,我只需要一个与facet中出现的相同术语的列表,但是,我不需要在给定查询中包含包含该术语的文档的计数,而是需要该计数的自定义函数和docFreq for那个词。
我一直在查看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的该字段上检索可能的术语?