gpt4 book ai didi

class - 在Elasticsearch Nest中索引动态对象

转载 作者:行者123 更新时间:2023-12-03 01:47:47 26 4
gpt4 key购买 nike

Elasticsearch 通常适用于预定义的类。如何使用动态类。
例如:假设我想搜索一个特定的字段

var result = clientConnection.Search<**TicketData**>(

s => s
.Aggregations(

a => a
.DateRange(

"L1", d => d
.Field(p => p.timestamp)
.Ranges(
r => r.To("2016-10-09T15:01:06+00:00"),
r => r.From("2016-09-27T02:09:17+00:00")
)
)
)
);

在这里,ticketdata类必须预先定义。我们可以有类似的东西吗
var result = clientConnection.Search<ANYDYNAMICCLASS>(s => s

.Aggregations(a => a

.DateRange("L1", d => d

.Field(p => p.timestamp)

.Ranges(
r => r.To("2016-10-09T15:01:06+00:00"),
r => r.From("2016-09-27T02:09:17+00:00")
)
)
)
);

动态类/动态对象可以与此一起工作吗?请举一个例子。

最佳答案

Elasticsearch可以处理JSON文档,它与C#POCO无关。但是,使用像C#这样的强类型语言,在Elasticsearch中将文档建模为应用程序中的POCO非常有意义,但是您不必这样做。

例如,我们可以使用dynamic作为搜索的文档类型,并使用.Index().Type()方法分别指定索引和类型。

var result = client.Search<dynamic>(s => s
.Index("index-name")
.Type("type-name")
.Aggregations(a => a
.DateRange("L1", d => d
.Field("timestamp")
.Ranges(
r => r.To("2016-10-09T15:01:06+00:00"),
r => r.From("2016-09-27T02:09:17+00:00")
)
)
)

);

您还可以直接通过客户端上的 .LowLevel属性使用Elasticsearch.Net,还可以使用流,字节或字符串。

关于class - 在Elasticsearch Nest中索引动态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42505815/

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