Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用嵌套查询linq弹性搜索_C#_Linq_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,Linq,elasticsearch,Nest" /> elasticsearch,nest,C#,Linq,elasticsearch,Nest" />

C# 使用嵌套查询linq弹性搜索

C# 使用嵌套查询linq弹性搜索,c#,linq,elasticsearch,nest,C#,Linq,elasticsearch,Nest,是否有任何方法可以使用linq或lambda表达式查询NEST客户端的Elasticsearch 我想做这样的事情: client.Search<MyClass>(s => s.MyProperty.Contains("value") && (s.MySecondProperty == 123 || s.ThirdProperty > 12))

是否有任何方法可以使用linq或lambda表达式查询NEST客户端的Elasticsearch

我想做这样的事情:

client.Search<MyClass>(s => s.MyProperty.Contains("value") &&
                            (s.MySecondProperty == 123 ||
                             s.ThirdProperty > 12)) ;
我读了一点,但它似乎不再活跃。上一个nuget软件包于2015年10月发布


我想做的是创建一个方法,从调用方获取一个表达式作为参数,并用它搜索elastic。调用者不应依赖ES或嵌套API

简言之,否。

较长的答案是,是我所知道的最接近LINQ的提供者,但没有公开Elasticsearch API的所有功能

虽然在
LINQ
IQueryable
等与Elasticsearch查询DSL和REST API公开的搜索功能之间存在一些重叠,但有许多查询无法用LINQ轻松表达,例如a看起来像什么,或a或a

您需要扩展LINQ中可用的方法,并编写一个非平凡的查询提供程序,所有这些都是为了将定义良好的查询DSL适合LINQ范式

就我个人而言,我倾向于接受查询DSL和RESTAPI,并希望将您的表达式转换为可以使用NEST、Elasticsearch.Net或
HttpClient
发送的内容。调用方仍然不需要知道请求是如何发出的


如果您最终编写了LINQ查询提供程序,我会非常感兴趣:)

您今天在那里编写的确切查询在ElasticLINQ中非常有效


该项目仍然存在——只是有时候没有理由发布新版本。今天发布了一个point release,它修复了使用AND中嵌套的OR生成查询(而不是过滤器)时出现的问题。

支持v5.x的任何ETA?我的工作不再涉及.NET或Elasticsearch,因此我不确定在没有帮助的情况下是否会有任何移动。
var query = from m in MyContext.MyClass
            where ...
            select m