需要Ravendb单个或多个索引?

时间:2014-01-04 10:45:58

标签: c# ravendb

我有一个简单的文档结构,例如:

public class CulturedData
{
    public string Culture { get; set; }
    public string Text { get; set; }
}

public class Product
{
    public int Id { get; set; }
    public decimal Price { get; set; }
    public List<CulturedData> Titles { get; set; }
    public List<CulturedData> Descriptions { get; set; }
}

Culture = "EN" or "DE" or "FR" etc.

我想知道使用各自的Text属性关键字搜索产品的最佳方法。描述的文本内容可能非常大,可能是20-30K。索引此类数据的最佳方法是什么?我是否需要为每种文化提供单独的索引?

使用 More Like This 功能也很不错,这是否意味着我被迫沿着特定的索引路径?

任何进一步的问题/解释请询问。

此致 菲尔

1 个答案:

答案 0 :(得分:2)

您可以使用单个索引,如下所示:

from p in products
select new
{
   _ = p.Titles.Select(x=>CreateField("Titles_" + x.Culture, x.Text)),
   _+ = p.Descriptions.Select(x=>CreateField("Descriptions_" + x.Culture, x.Text)),
}

那应该能给你你想要的东西。