Я использую NEST API (v0.12.0.0) для взаимодействия с ElasticSearch (v1.0.1) index, и я только начал получать исключение JsonSerializationException при извлечении моих данных. Я не уверен, является ли это проблемой NEST или нет, но это началось случайно, и мы не внесли никаких серьезных изменений в нашу реализацию или инфраструктуру.
Я пытаюсь получить идентификаторы моих данных (сохраненных как Guid) с помощью набранного Search ‹> (), и я получаю исключение, когда данные обрабатываются 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: этот вопрос отражен как проблема в проекте github.