【发布时间】:2014-02-26 22:40:30
【问题描述】:
我正在使用 NEST API (v0.12.0.0) 与 ElasticSearch (v1.0.1) 索引进行交互,并且在检索数据时刚刚开始收到 JsonSerializationException。我不确定这是 NEST 问题还是其他问题,但它只是随机开始发生的,我们没有对我们的实现或基础架构进行任何重大更改。
我正在尝试使用类型化的 Search() 检索我的数据的 ID(存储为 Guid),并且当 JSON.NET 处理数据时出现异常。
client.Search<ESEventItem>(s =>
s.Index("dev-events004")
.Fields(f => f.Id).Size(100000)
.Type("event").MatchAll()).Documents.ToList()
在 Sense 中手动运行相同的查询不会产生明显的问题:
POST /dev-events004/event/_search
{
"size": 100000,
"query": {
"match_all": {}
},
"fields": [
"id"
]
}
{
"took": 2088,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 19257,
"max_score": 1,
"hits": [
{
"_index": "dev-events004",
"_type": "event",
"_id": "670a1055-cbe3-480e-b807-a2b500f9dfb3",
"_score": 1,
"fields": {
"id": [
"670a1055-cbe3-480e-b807-a2b500f9dfb3"
]
}
},
/* ... additional results ... */
]
}
}
如果我执行一个原始的、无类型的查询Fields(new[] { "Id" }),它不会引发异常。同样,如果我返回整个 ESEventItem 对象,而不仅仅是 Id 字段,它也可以正常工作。
致 NEST 开发人员:此问题反映为 issue on the github project。
【问题讨论】:
-
当我从源代码更新 NEST 到最新版本时,我没有遇到这个问题,但那个版本还不稳定。
标签: c# elasticsearch json.net nest