【问题标题】:pagination in solr 5.3 json facetssolr 5.3 json facets 中的分页
【发布时间】:2016-02-10 08:19:58
【问题描述】:

我正在使用 solrj API 在 solr 5.3 中运行 json facet 查询,并且每个查询也有许多子方面(可以是 4-5 个字段深度)。总索引文档大于 800 万。我从 NamedList 对象中的响应中提取方面结果。

但我想获得分面的分页结果。现在,我一口气得到了整个结果,但将来它可能会“内存不足”。

   {  
   "ComputerName_s":{  
      "allBuckets":true,
      "type":"terms",
      "field":"ComputerName_s",
      "limit":-1,
      "facet":{  
         "ProcessName_s":{  
            "type":"terms",
            "field":"ProcessName_s",
            "limit":-1,
            "facet":{  
               "PID_i":{  
                  "type":"terms",
                  "field":"PID_i",
                  "limit":-1,
                  "facet":{  
                     "timestamp":{  
                        "type":"terms",
                        "field":"timestamp",
                        "limit":-1,
                        "facet":{  
                           "max(Memory_l)":"max(Memory_l)",
                           "avg(Memory_l)":"avg(Memory_l)",
                           "min(ElapsedTime_l)":"min(ElapsedTime_l)"
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

例如以上是 json.facet 查询的示例。那么,如何设置每个字段的偏移量和限制并获得分页结果。

另外,我能否以 CSV 格式而不是像 NamedList 结构这样的复杂树获得分面结果,因为我正在尝试模拟 sql 的“group by”子句,并且将此结构转换为行非常耗时 -逐行结构。

【问题讨论】:

    标签: solr solrj solr5


    【解决方案1】:

    据我所知,分面功能没有深度分页支持。只有标准分页(效率极低)。

    您可以使用以下字段:facet.offset 和 facet.limit 来创建分页结果。

    但是 - Solr 将重新计算每个查询的结果 - 因此请求第二页将使 Solr 也重新计算第一页数据(这就是我说它效率低下时的意思)。

    【讨论】:

    • 所有 json facets 和 subfacets 是否有一个共同的偏移和限制?
    猜你喜欢
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多