从RavenDB获得不同的总结果

时间:2013-01-23 22:26:36

标签: ravendb

我有一个索引:

from rest in docs 
from prom in rest.RestPromotions

使用LuceneQuery查询时,由于索引创建的重复文档,TotalResults超出预期。 跳过的字段仅包含当前页面的跳过结果。

有没有办法获得截然不同的总结果?

文档类型如下:

{
  "RestName": "Belini",
  "RestID": 1275,
  "SearchNotVisible": [
    "Beliny",
    "bellini"
  ],
  "RegionID": 4,
  "SubRegionID": 0,
  "CityID": 172,
  "AreaID": 5,
  "AvgPriceID": 3,
  "RestTypes": [
    58
  ],
  "FoodTypes": [
    1,
    16
  ],
  "RestSpecials": [],
  "RestProperties": [
    4
  ],
  "RestPromotions": [
    {
      "regionID": 4,
      "cityID": 172,
      "areaID": 0,
      "KosherID": 0,
      "foodTypeID": 16,
      "restTypeID": 0,
      "promotionNumber": 1,
      "isFalsePromo": false
    },
    {
      "regionID": 4,
      "cityID": 172,
      "areaID": 0,
      "KosherID": 0,
      "foodTypeID": 0,
      "restTypeID": 0,
      "promotionNumber": 1,
      "isFalsePromo": false
    },
    {
      "regionID": 4,
      "cityID": 172,
      "areaID": 0,
      "KosherID": 0,
      "foodTypeID": 1,
      "restTypeID": 0,
      "promotionNumber": 1,
      "isFalsePromo": false
    },
  "isKosher": false,
  "ReviewsScore": 3.709,
  "ReviewsAmount": 408,
  "Latitude": 32.060707,
  "Longitude": 34.765018
}

在索引上执行LuceneQuery时:

from rest in docs 
from prom in rest.RestPromotions
select new {RestID=rest.RestID,RestName=rest.RestName,PromoCityID=prom.cityID}

TotalResult大于查询返回的实际文档数量。 我知道这是因为索引所产生的重复文件。

我想知道的是,是否有选项可以获取特定LuceneQuery生成的实际数量的不同文档。

1 个答案:

答案 0 :(得分:0)

将索引图更改为:

from rest in docs 
select new
{
    rest.RestName,
    PromoCityID = rest.RestPromotions.Select(x=> x.cityID)
}

这将在一个索引条目中索引多个术语,而不是具有多个索引条目。您仍然可以像以前一样查询单个术语。但现在,当您查看统计数据时,TotalResults将代表匹配的餐馆总数。