我正在使用 WebApi 并希望为我的 SolrNet 资源之一实现 OData。
如果您返回一个 IQueryable,WebApi 支持 OData。所以我需要一个用于 SolrNet 查询的 IQueryable 提供程序。
有谁知道我如何开始的任何或一些示例代码?如果没有可用的,我的公司可能会启动一个开源项目来创建它。
我正在使用 WebApi 并希望为我的 SolrNet 资源之一实现 OData。
如果您返回一个 IQueryable,WebApi 支持 OData。所以我需要一个用于 SolrNet 查询的 IQueryable 提供程序。
有谁知道我如何开始的任何或一些示例代码?如果没有可用的,我的公司可能会启动一个开源项目来创建它。
我知道,这个问题已经很老了,但以防有人在 5 年后需要它 - 这是我对 Linq to Solr IQueriable 的实现
Git Hub 项目
Nuget 包
一般来说,IQueryable 与某种 LINQ 提供程序相关联。我不确定社区与 LINQ-to-Solr 提供商的关系。我不知道今天有什么可行的方法,但是搜索结果中出现了一些项目,您应该在投入时间创建 LINQ 提供程序之前查看这些项目。
也就是说,您 - 可以 - 简单地获取事物列表并调用 .AsQueryable() 扩展方法。尽管以这种方式获取 IQueryable 在技术上很容易,但我假设您可能正在寻找要转换为 Solr 查询的 OData 查询,在这种情况下,前一段是您想要追求的。
您可以使用https://www.nuget.org/packages/SolrNet.Linq nuget 包。它扩展了 SolrNet 功能并与构建 LINQ 表达式的 OData 方式兼容,但支持的方法数量有限。
代码示例将是:
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
IQueryable<Product> solrLinq = solr.AsQuerable()
Product[] result = solrLinq.Where(p => p.Price > 12).ToArray();