Java 如何获得Solr方面结果的大小?
在我的模式中有一个名为XXX的多值字段。在我的Solr中可能有100000多个文档,我想知道XXX中有多少个值没有任何重复 现在,我使用facet.field=XXX&facet.limit=-1来获取facet结果大小。它将花费大量时间,有时会发生读取超时 我想要的方面结果只是“大小”,我不关心内容Java 如何获得Solr方面结果的大小?,java,solr,facet,Java,Solr,Facet,在我的模式中有一个名为XXX的多值字段。在我的Solr中可能有100000多个文档,我想知道XXX中有多少个值没有任何重复 现在,我使用facet.field=XXX&facet.limit=-1来获取facet结果大小。它将花费大量时间,有时会发生读取超时 我想要的方面结果只是“大小”,我不关心内容 顺便问一下,我使用Solr5.0,有没有其他更好的解决方案来解决我的需求 索引确实维护了一个唯一术语的列表,因为反向索引就是这样工作的。它的计算和返回速度也非常非常快,不像刻面。如果你的价值观是单
顺便问一下,我使用Solr5.0,有没有其他更好的解决方案来解决我的需求 索引确实维护了一个唯一术语的列表,因为反向索引就是这样工作的。它的计算和返回速度也非常非常快,不像刻面。如果你的价值观是单一的,那么这可能是达到你想要的目的的一种方式。如果solrconfig.xml中启用了TermsComponent,那么有一种方法可以获取唯一的术语。例如:
http://localhost:8983/solr/corename/terms?q=*%3A*&wt=json&indent=true&terms=true&terms.fl=XXX
将返回所有唯一术语及其计数的列表:
{
"responseHeader":{
"status":0,
"QTime":0},
"terms":{
"XXX":[
"John Backus",3,
"Ada Lovelace",3,
"Charles Babbage",2,
"John Mauchly",1,
"Alan Turing",1
]
}
}
此列表的长度是唯一术语的数量,在示例中为5。不幸的是,API没有提供一种只请求计数而不返回术语列表的方法,因此虽然它在生成列表方面具有速度优势,但返回完整列表所需的时间量给了它与facets方法类似的缺点。而且,返回的列表可能会变得很长
查看API详细信息。我已经尝试使用统计信息,但它是一个多值字段,因此没有意义。与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”或签名。顺便说一句,这是“提前感谢”,而不是“提前感谢”。