RavenDb LuceneQuery:如何查询列表
如何使用Lucene查询列表?这是我的尝试,但我出错了RavenDb LuceneQuery:如何查询列表,lucene,ravendb,Lucene,Ravendb,如何使用Lucene查询列表?这是我的尝试,但我出错了 var top10MoviesQuery = session.Advanced.DocumentQuery<Media, Media_Index>() .SetResultTransformer("MediaListTransformer") .SelectFields<MediaListProjection>() .WhereEquals(o => o.AvalibleOnServices,
var top10MoviesQuery = session.Advanced.DocumentQuery<Media, Media_Index>()
.SetResultTransformer("MediaListTransformer")
.SelectFields<MediaListProjection>()
.WhereEquals(o => o.AvalibleOnServices, serviceMovie) <---- here
.OrderByDescending(o => o.OurScore)
.Take(10)
.Lazily();
AvailableOnServices是一个列表,serviceMovie是一个字符串。我假设您的目的是查询AvailableOnServices列表中包含serviceMovie的文档。如果是这样的话,你可以做这样的事情,你不需要Lucene做这么简单的事情:
var top10MoviesQuery = session.Query<Media, Media_Index>()
.Where(x => x.AvailableOnServices.Contains(serviceMovie))
.Take(10)
.TransformWith<MediaListTransformer, MediaListProjection>()
.Lazily();
请注意:
在这里,我假设MediaListProjection是MediaListTransformer转换成的,因为您没有提到其他内容,并且
您需要使用Raven.Client.Linq添加;为了能够在结果上调用TransformWith—通过导入此命名空间,在调用Where时,您将获得一个IRavenQueryable,而不是常规的IQueryable,因此您将能够调用Raven特定的东西,例如TransformWith和Lazly。
您正在比较列表和字符串。你想用它实现什么?查询哪些AvailableOnServices列表包含serviceMovie的文档?如果是这样,你为什么要用Lucene呢?