我的文件有"评论"收集,我想索引"最后评论日期"。我已经静态定义了已经适用于其他字段的索引,因此我的索引没有任何问题。但是尝试添加这个新字段是行不通的。在搜索时我根本无法获得任何结果。
我尝试使用Max()聚合获取最大日期(请注意,我必须处理没有评论的情况)
testlastcommented = doc.Comments.Count > 0 ? doc.Comments.Select(c => c.DateEntered).Max() : null
这抱怨DynamicList不支持Max()。我可以发誓我使用Max()进行了迭代,但是现在我无法正常工作。但即使它没有发生错误,我也无法在现场查询。
然后我尝试使用OrderByDescending / FirstOrDefault替代Max()
testlastcommented = doc.Comments.OrderByDescending(c => c.DateEntered).FirstOrDefault()
此索引没有错误。但无论我做什么,它都好像该字段在索引中不存在。我无法获得具有已知值的任何结果。
我发生了故障并添加了一个计算出来的" LastCommented"属性到文档并索引。这显然有效,但我不必在文档中存储计算字段。
答案 0 :(得分:2)
试试这个:
testlastcommented = doc.Comments.Select(c => c.DateEntered)
.OrderByDescending(x => x)
.FirstOrDefault()