RavenDb LuceneQuery:如何查询List <string>

时间:2017-01-19 07:49:09

标签: lucene ravendb

如何使用Lucene对List<string>进行查询?这是我的尝试,但我收到了一个错误。

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();

AvalibleOnServicesList<string>()serviceMoviestring

1 个答案:

答案 0 :(得分:1)

我假设您的目的是查询AvailableOnServices列表包含serviceMovie的文档。如果是这样的话,你可以做这样的事情,你就不需要Lucene来做这么简单的事情:

var top10MoviesQuery = session.Query<Media, Media_Index>()
    .Where(x => x.AvailableOnServices.Contains(serviceMovie))
    .Take(10)
    .TransformWith<MediaListTransformer, MediaListProjection>()
    .Lazily();

请注意:

  • 我假设MediaListProjectionMediaListTransformer变换的内容,因为您没有提及,
  • 您需要添加using Raven.Client.Linq;才能在结果上调用TransformWith - 通过导入此命名空间,您将获得IRavenQueryable<T>而不是常规IQueryable<T>致电Where,以便您可以调用特定Raven的内容,例如TransformWithLazily