json - GetMapping 不适用于 Elasticsearch 中的 Nest 客户端

标签 json elasticsearch nest

也许是一些文档 http://nest.azurewebsites.net/已经旧了,因为我遇到了至少几个问题......

我有一个 json 对象“搜索”。我从 GetMapping 函数返回 null。好吧,它返回一个 Nest.RootObjectMapping 对象,但其中的所有字段均为 null。我可以使用 Sense 或常规curl 获得良好的映射。

var mapping = elasticClient.GetMapping<MyJsonPOCO>();

有什么想法吗?

此外,就像其他出错的例子一样,此搜索有效,但向其中添加“字段”则无效(我根据文档获得了字段声明)

var result = elasticClient.Search<MyJsonPOCO>(s => s
                .Query(q => q
                    .QueryString(qs => qs
                        .OnField(e => e.Title)
                        .Query("my search term"))));

如果我使用此查询并添加了字段(仅返回“标题”),我会遇到 json 解析器问题。

var result = elasticClient.Search<MyJsonPOCO>(s => s
                .Fields(f => f.Title)
                .Query(q => q
                    .QueryString(qs => qs
                        .OnField(e => e.Title)
                        .Query("my search term"))));

这是该错误: Newtonsoft.Json.dll 中发生“Newtonsoft.Json.JsonReaderException”类型的异常,但未在用户代码中处理 附加信息:读取字符串时出错。意外标记:StartArray。路径“hits.hits[0].fields.title”,第 1 行,位置 227。

最佳答案

Elasticsearch 1.0 更改了搜索响应中返回字段的方式

您需要 NEST 1.0 beta1 版本才能与 Elasticsearch 1.0 配合使用

http://www.elasticsearch.org/blog/introducing-elasticsearch-net-nest-1-0-0-beta1/

另请参阅此 github 问题,了解有关为什么以及如何使用 1.0 及以后的字段的更多背景信息:

https://github.com/elasticsearch/elasticsearch-net/issues/590

关于json - GetMapping 不适用于 Elasticsearch 中的 Nest 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23497900/

相关文章:

javascript - 如何在rails中将json转换为html

javascript - 在node js express中将字符串解析为json

Elasticsearch,匹配数组中数组的任何可能的精确值

elasticsearch - 将类型名称传递给ElasticClient对象Nest

.net - 嵌套NEST `FirstOrDefault()`查询中 `Term()`有什么用途?

ElasticSearch 和 Nest : Why am I missing the id field on a query?

json - 如何将此 json 转换为 Flutter 对象

javascript - angularjs 避免 ngrepeat 中的空字段

php - 在elasticsearch中使用PHP客户端库设置索引别名?

java - 如何在Java中将Elasticsearch聚合的结果打印为JSON字符串?