1

是否可以使用一个索引作为另一个索引的基础?

public class BlogPostsOrderedByCreated : AbstractIndexCreationTask<BlogPost, BlogPost> {
    /* Ordering Blogs after creation-date */
}

// TODO: Implement another index that uses above index
//public class BlogSelection :

这甚至可能吗,还是我必须创建一个复制其他索引代码的全新索引?如果不可能,那为什么?

4

2 回答 2

3

不,你不能这样做,因为实现它非常复杂,而且交换的价值很小。

实现这一点很复杂,因为: - 当第一个索引有任何更改时,您应该在第二个索引中通知。- 你如何实现交易?

而且可能还有更多。索引之间的可靠会引发一些非常复杂的问题需要解决,所以你最好只有两个索引。

如果这在您的场景中没有意义,您可能做错了事。例如,您不必创建任何 BlogPostsOrderedByCreated 和 BlogSelection 索引,只需使用一个 linq 查询即可:

session.Query<Post>()
       .Where(x => x.Name == "Blog selection")
       .OrderBy(x => x.CreatedDate)
       .ToList();
于 2012-04-18T13:03:25.767 回答
0

我的一般理解是,这从客户端来说会很棘手——在一天结束时,这些索引定义被转换为 linq 到对象并发送到服务器。当所说的 linq 被干预时,它只能访问 System 命名空间和一些乌鸦特定的东西。

在这种情况下可行的是在服务器上的捆绑包中定义索引。然后你可以做更多有趣的事情。不完全确定它会起作用,但我认为你会有一个战斗的机会。

于 2012-04-18T12:54:52.593 回答