Solr:使用带有枢轴的构面范围进行过滤

时间:2019-03-14 16:56:20

标签: solr

我正在运行Solr查询以获取日期字段的方面。我的范围起点设置为1/1/2019,终点设置为4/1/2019。我使用的各种差距是+7天,+ 1个月,+ 1年。在我的示例中,以下是我使用+7天的结果。

"facet_counts":{
  "facet_ranges":{
    "published_date":{
      "counts":[
        "2019-01-01T00:00:00Z",14,
        "2019-01-15T00:00:00Z",5,
        "2019-01-29T00:00:00Z",6,
        "2019-02-05T00:00:00Z",11,
        "2019-02-12T00:00:00Z",24,
        "2019-02-19T00:00:00Z",31,
        "2019-03-05T00:00:00Z",4,
        "2019-03-12T00:00:00Z",5,
        "2019-03-19T00:00:00Z",11,
        "2019-03-26T00:00:00Z",35],
      "gap":"+7DAYS",
      "start":"2019-01-01T00:00:00Z",
      "end":"2019-04-02T00:00:00Z"
    }
  }
}

我需要上面的方面信息,因此我可以将要用于图表的文档分类到这些组中。因此,需要为该组显示“ 2019-01-01T00:00:00Z”范围内的14个文档。正是这些方面将代表我的其余数据。

现在,我想在另一个字段available_inventory上进行透视,因为它将用于显示范围的另一部分。
这是我针对该关键点的结果。

"facet_pivot":{
  "available_inventory":[{
      "field":"available_inventory",
      "value":"12",
      "count":64},
    {
      "field":"available_inventory",
      "value":"1",
      "count":57},
    {
      "field":"available_inventory",
      "value":"5",
      "count":57},
    {
      "field":"available_inventory",
      "value":"9",
      "count":56},
    {
      "field":"available_inventory",
      "value":"4",
      "count":52},
    {
      "field":"available_inventory",
      "value":"6",
      "count":52},
    {
      "field":"available_inventory",
      "value":"7",
      "count":51},
    {
      "field":"available_inventory",
      "value":"15",
      "count":50},
    {
      "field":"available_inventory",
      "value":"16",
      "count":50},
    {
      "field":"available_inventory",
      "value":"18",
      "count":50},
    {
      "field":"available_inventory",
      "value":"19",
      "count":50},
    {
      "field":"available_inventory",
      "value":"0",
      "count":49},
    {
      "field":"available_inventory",
      "value":"17",
      "count":49},
    {
      "field":"available_inventory",
      "value":"14",
      "count":48},
    {
      "field":"available_inventory",
      "value":"2",
      "count":48},
    {
      "field":"available_inventory",
      "value":"13",
      "count":47},
    {
      "field":"available_inventory",
      "value":"10",
      "count":46},
    {
      "field":"available_inventory",
      "value":"11",
      "count":43},
    {
      "field":"available_inventory",
      "value":"3",
      "count":43},
    {
      "field":"available_inventory",
      "value":"8",
      "count":36}]
    }
  }
}

到目前为止,一切都很好。但是这些计数不能代表facet_ranges部分中返回的范围。有没有办法让我两个啮合?我尝试使用facet.field而不是ivot.field,但是同样,对于作为范围一部分返回的内容,没有上下文(甚至过滤)。

对于我来说,要获取与该范围相匹配的文档(例如,针对“ 2019-01-01T00:00:00Z”的14个文档),要对facet_ranges数据进行任何处理,是否需要提交后续查询,其中doc的published_date具有每个范围的值,然后合计available_inventory值。如果是这种情况,那么我有没有尝试使用其他facet.field参数的观点?还是将这些字段用作枢轴?我想知道的是,是否有一种方法可以通过单个查询做到这一点。如果没有办法,我该如何以返回特定范围(例如“ 2019-01-01T00:00:00Z”)的所有文档的方式提交查询?鉴于事实是我将在开始日期之后访问所有内容?

我希望我对自己的解释足够好...

thnx,
克里斯托夫

0 个答案:

没有答案