WebApiを使用していて、SolrNetリソースの1つにODataを実装したいと考えています。
WebApiは、IQueryableを返す場合にODataをサポートします。したがって、SolrNetクエリ用のIQueryableプロバイダーが必要です。
誰かが私が始める方法の何か、またはいくつかのサンプルコードを知っていますか?利用可能なものがない場合、私の会社はこれを作成するためのオープンソースプロジェクトを開始する可能性があります。
WebApiを使用していて、SolrNetリソースの1つにODataを実装したいと考えています。
WebApiは、IQueryableを返す場合にODataをサポートします。したがって、SolrNetクエリ用のIQueryableプロバイダーが必要です。
誰かが私が始める方法の何か、またはいくつかのサンプルコードを知っていますか?利用可能なものがない場合、私の会社はこれを作成するためのオープンソースプロジェクトを開始する可能性があります。
質問は非常に古いものですが、5年後に誰かがそれを必要とする場合に備えて、LinqからSolrIQueriableへの実装を次に示します。
Gitハブプロジェクト
Nugetパッケージ
一般的に、IQueryableはある種のLINQプロバイダーに関連付けられています。LINQ-to-Solrプロバイダーのコミュニティがどこにあるのかわかりません。今日機能するものは何もわかりませんが、検索結果に表示されたプロジェクトの中には、LINQプロバイダーの作成に時間を費やす前に確認する必要があるものがあります。
そうは言っても、単にリストを取得して.AsQueryable()拡張メソッドを呼び出すことができます。この方法でIQueryableを取得することは技術的には簡単ですが、おそらくODataクエリをSolrクエリに変換することを探していると思います。その場合、前の段落が追求したい段落です。
https://www.nuget.org/packages/SolrNet.Linqnugetパッケージを使用できます。SolrNet機能を拡張し、LINQ式を構築するODataの方法と互換性がありますが、サポートするメソッドの数は限られています。
コードサンプルは次のようになります。
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
IQueryable<Product> solrLinq = solr.AsQuerable()
Product[] result = solrLinq.Where(p => p.Price > 12).ToArray();