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

时间:2014-05-06 14:44:06

标签: json elasticsearch nest

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

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

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

任何想法?

另外,正如其他问题出现的例子一样,这种搜索也有效,但是添加了&#39;字段&#39;它没有(我根据文件获得了字段声明)

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

如果我将这个查询与添加的字段一起使用(只返回&#39; title&#39;),我会得到一个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"))));

这是该错误的错误: 类型&#39; Newtonsoft.Json.JsonReaderException&#39;的例外情况发生在Newtonsoft.Json.dll但未在用户代码中处理 附加信息:读取字符串时出错。意外的令牌:StartArray。路径&#39; hits.hits [0] .fields.title&#39;,第1行,第227位。

1 个答案:

答案 0 :(得分:2)

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

您需要NEST 1.0 beta1版本才能与Elasticsearch 1.0一起使用

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

有关使用1.0前进字段的原因和方法的更多背景信息,请参阅此github问题:

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