Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Search_Solr_Faceted Search - Fatal编程技术网

Java Solr单独过滤面结果

Java Solr单独过滤面结果,java,search,solr,faceted-search,Java,Search,Solr,Faceted Search,我正在根据预定义的标准列表过滤solr返回的方面 例如,我正在查询不同类型的文档。返回的方面如下所示: <lst name="facet_counts"> <lst name="facet_queries"/> <lst name="facet_fields"> <lst name="applicationName"> <int name="microsoft">2304</int>

我正在根据预定义的标准列表过滤solr返回的方面

例如,我正在查询不同类型的文档。返回的方面如下所示:

<lst name="facet_counts">
  <lst name="facet_queries"/>
  <lst name="facet_fields">
    <lst name="applicationName">
      <int name="microsoft">2304</int>
      <int name="word">2277</int>
      <int name="0">1550</int>
      <int name="office">598</int>
      <int name="8">471</int>
      <int name="9">446</int>
      <int name="90">445</int>
      <int name="10">435</int>
      <int name="100">426</int>
      <int name="9.0">418</int>
      <int name="10.0">411</int>
      <int name="8.0">375</int>
      <int name="80">375</int>
      <int name="2">328</int>
      <int name="5">308</int>
      <int name="acrobat">272</int>
编辑我当前的解决方案是添加一个自定义搜索处理程序,并在执行查询后执行过滤。我希望通过查询机制找到一个解决方案,这样可以减少处理。

您是否尝试过“facet.query”参数?如果我正确理解了您的问题,如果您在您的请求中加入facet.query=-applicationName:microsoft,Solr将完全满足您的要求。所以,应该是这样的:

q=%3A&facet=true&facet.field=applicationName&facet.query=-applicationName:microsoft


编辑:
上述暗示是错误的。它将只返回字段“applicationName”中没有“microsoft”的文档数

您应该在“q”参数上放置相同的查询。就这样,

q=-applicationName:microsoft&facet=true&facet.field=applicationName


您可以多次指定facet.query参数以将多个查询用作单独的facet约束。您好,我刚刚尝试过它,结果是:
382424367277
这本来很好,但是否定没有按预期工作。上面的提示是错误的。它将只返回字段“applicationName”中没有“microsoft”的文档数。您应该在“q”参数上放置相同的查询。就像这样:q=-applicationName:microsoft&facet=true&facet.field=applicationName
q=*%3A*&wt=xml&indent=true&facet=true&facet.field=applicationName