簡體   English   中英

在Elasticsearch Nest中索引動態對象

[英]Indexing dynamic objects in elasticsearch nest

彈性搜索通常適用於預定義的類。 我如何使用動態類。 例如:假設我想搜索一個特定的字段

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,還可以使用流,字節或字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM