Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得Solr方面结果的大小?_Java_Solr_Facet - Fatal编程技术网

Java 如何获得Solr方面结果的大小?

Java 如何获得Solr方面结果的大小?,java,solr,facet,Java,Solr,Facet,在我的模式中有一个名为XXX的多值字段。在我的Solr中可能有100000多个文档,我想知道XXX中有多少个值没有任何重复 现在,我使用facet.field=XXX&facet.limit=-1来获取facet结果大小。它将花费大量时间,有时会发生读取超时 我想要的方面结果只是“大小”,我不关心内容 顺便问一下,我使用Solr5.0,有没有其他更好的解决方案来解决我的需求 索引确实维护了一个唯一术语的列表,因为反向索引就是这样工作的。它的计算和返回速度也非常非常快,不像刻面。如果你的价值观是单

在我的模式中有一个名为XXX的多值字段。在我的Solr中可能有100000多个文档,我想知道XXX中有多少个值没有任何重复

现在,我使用facet.field=XXX&facet.limit=-1来获取facet结果大小。它将花费大量时间,有时会发生读取超时

我想要的方面结果只是“大小”,我不关心内容


顺便问一下,我使用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详细信息。

我已经尝试使用统计信息,但它是一个多值字段,因此没有意义。与论坛网站不同,我们不使用“感谢”或“感谢任何帮助”或签名。顺便说一句,这是“提前感谢”,而不是“提前感谢”。