RavenDb LuceneQuery:如何查询列表

RavenDb LuceneQuery:如何查询列表,lucene,ravendb,Lucene,Ravendb,如何使用Lucene查询列表?这是我的尝试,但我出错了 var top10MoviesQuery = session.Advanced.DocumentQuery<Media, Media_Index>() .SetResultTransformer("MediaListTransformer") .SelectFields<MediaListProjection>() .WhereEquals(o => o.AvalibleOnServices,

如何使用Lucene查询列表?这是我的尝试,但我出错了

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呢?