gpt4 book ai didi

c# - 使用 NEST 使用 linq 查询 Elasticsearch

转载 作者:太空狗 更新时间:2023-10-30 00:30:29 25 4
gpt4 key购买 nike

有什么方法可以使用 linq 或 lambda 表达式通过 NEST 客户端查询 Elasticsearch。

我想做这样的事情:

client.Search<MyClass>(s => s.MyProperty.Contains("value") &&
(s.MySecondProperty == 123 ||
s.ThirdProperty > 12)) ;

或者

var query = from m in MyContext.MyClass
where ...
select m

我读了一点 ElasticLinq但它似乎不再活跃了。最后一个 nuget 包发布于 2015 年 10 月

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

最佳答案

简而言之,没有。

较长的答案是, ElasticLINQ 是我所知道的最接近 LINQ 提供程序但不公开 Elasticsearch API 的所有功能。

虽然 LINQ 之间有一些重叠, IQueryable<T>等。 al,以及 Elasticsearch 查询 DSL 和 REST API 公开的搜索功能,有许多查询无法用 LINQ 轻松表达,例如completion suggester query 会是什么看起来像,或者一个function score querymoving average aggregation using Holt-Winters

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

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

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

关于c# - 使用 NEST 使用 linq 查询 Elasticsearch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35993700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com