2017-01-19 3 views
0

LuceneでList<string>をクエリするにはどうすればよいですか?ここに私の試みですが、私は誤りがあります。RavenDb LuceneQuery: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あります。

+0

あなたは 'List 'と 'string'を比較しています。あなたはそれで何を達成したいですか? 'AvailableOnServices'リスト*に' serviceMovie'が含まれているドキュメントを照会しますか?もしそうなら、なぜLuceneを使ってみたいですか? –

答えて

1

AvailableOnServicesリストにはserviceMovieが含まれているドキュメントをクエリすることを前提としています。

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

注:その場合は、このような何かをあなただけの、あなたがそのような単純なことのためのLuceneを必要としませんでした。ここ

  • 私はMediaListProjectionMediaListTransformerが変身するものであることを前提としてい、あなたは結果にTransformWithを呼び出すことができるようにusing Raven.Client.Linq;を追加する必要がありそうでない場合に言及し、
  • なかったので - ときは、CA、この名前空間をインポートすることにより、あなたの代わりに、通常のIQueryable<T>IRavenQueryable<T>を取得しますl Whereのように、TransformWithLazilyなどのRaven固有のものを呼び出すことができます。
関連する問題