【问题标题】:Solr filter out facet results individuallySolr 分别过滤掉构面结果
【发布时间】:2013-04-24 18:33:09
【问题描述】:

我正在根据预定义的条件列表过滤掉 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>

假设我不想显示 microsoft 作为这个 facet_field 的结果。查询当前如下所示。我已经尝试了标签和排除过滤器,但我运气不好......

q=*%3A*&wt=xml&indent=true&facet=true&facet.field=applicationName

编辑我当前的解决方案是添加自定义搜索处理程序并执行过滤后查询执行。我想通过查询机制有一个解决方案,这种方式将涉及更少的处理。

【问题讨论】:

    标签: java search solr faceted-search


    【解决方案1】:

    您是否尝试过“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 参数以将多个查询用作单独的构面约束。
    • 嗨,我刚刚尝试过,结果如下:&lt;lst name="facet_counts"&gt;&lt;lst name="facet_queries"&gt;&lt;int name="-applicationName:microsoft"&gt;382&lt;/int&gt;&lt;/lst&gt;&lt;lst name="facet_fields"&gt;&lt;lst name="applicationName"&gt;&lt;int name="word"&gt;424&lt;/int&gt;&lt;int name="microsoft"&gt;367&lt;/int&gt;&lt;int name="0"&gt;277&lt;/int&gt;
    • 这本来不错,但否定没有按预期工作。
    • 以上提示错误。它只会返回字段“applicationName”中没有“microsoft”的文档数。您应该对“q”参数进行相同的查询。就像这样:q=-applicationName:microsoft&facet=true&facet.field=applicationName
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2018-07-30
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多