在弹性搜索嵌套中索引动态对象
Indexing dynamic objects in elasticsearch nest
Elastic 搜索通常使用预定义的 classes 。我如何使用动态 classes。
例如:假设我想搜索一个特定的字段然后
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")
)
)
)
);
此处必须预先定义票据数据class。我们可以有类似
的东西吗
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")
)
)
)
);
动态 class/ 动态对象可以使用它吗?请举例说明如何完成。
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,也可以使用流、字节或字符串。
Elastic 搜索通常使用预定义的 classes 。我如何使用动态 classes。 例如:假设我想搜索一个特定的字段然后
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")
)
)
)
);
此处必须预先定义票据数据class。我们可以有类似
的东西吗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")
)
)
)
);
动态 class/ 动态对象可以使用它吗?请举例说明如何完成。
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,也可以使用流、字节或字符串。