【问题标题】:GetMapping not working for Nest client in ElasticsearchGetMapping 不适用于 Elasticsearch 中的 Nest 客户端
【发布时间】:2014-06-23 06:08:18
【问题描述】:

也许http://nest.azurewebsites.net/ 的某些文档已经过时了,因为我遇到了至少几个问题...

我有一个 json 对象“搜索”。我从 GetMapping 函数返回 null。好吧,它返回一个 Nest.RootObjectMapping 对象,但其中的所有字段都是空的。我可以使用 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。

【问题讨论】:

    标签: json elasticsearch nest


    【解决方案1】:

    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

    【讨论】:

    • 这更有意义!谢谢。我不知道我是怎么错过的。标记为答案。
    猜你喜欢
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 2012-09-23
    • 2015-02-19
    • 2013-03-31
    • 2020-12-22
    • 2018-02-18
    • 1970-01-01
    相关资源
    最近更新 更多