也许是一些文档 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/