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