关于so​​lr查询方面

时间:2013-09-12 10:25:02

标签: java solr

在我的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做到这一点?

1 个答案:

答案 0 :(得分:0)

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