【问题标题】:About solr query facet关于 solr 查询方面
【发布时间】:2013-09-12 10:25:01
【问题描述】:

在我的solr文档中,文档数据是这样的:

  {
    "createTime":"2013-09-10",
    "reason":"reason1",
    "postId":"postId_1",
    "_version_":1445959401549594624 },
  {
    "createTime":"2013-09-11",
    "reason":"reason2",
    "postId":"postId_1",
    "_version_":1445959401549594624 },
  {
    "createTime":"2013-09-12",
    "reason":"reason3",
    "postId":"postId_1",
    "_version_":1445959401549594624 },
  {
    "createTime":"2013-09-13",
    "reason":"reason4",
    "postId":"postId_2",
    "_version_":1445959401549594624 },<script>alert("1")</script>

现在我需要使用 solr facetQuery 来选择一些这样的数据:

     1. postId1, 3 records, the last createTime is "2013-09-12"
     2. postId2, 1 record, the last createTime is "2013-09-13", reason is reason4

如何使用 solr facetQuery 做到这一点?

【问题讨论】:

    标签: java solr


    【解决方案1】:

    您可以使用Field Collapsing 功能,它可以帮助您对结果进行分组。
    如果您在 post_id 上分组,您将能够根据帖子 id 获得结果。
    您将获得每个帖子 ID (numFound) 的计数,这将为您提供 3 records 部分。
    您可以按日期 desc 对组内的结果进行排序并返回单个结果 (group.limit=1),这将为您提供最后日期。
    您可以从记录中提取reason

    【讨论】:

      猜你喜欢
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 2013-02-28
      • 2011-12-20
      • 2014-01-30
      • 1970-01-01
      相关资源
      最近更新 更多