问题描述
我有一个使用 nest 7.x 的项目,我需要对旧的 5.x elasticsearch 索引进行查询。当我拨打这样的电话时,出现以下错误。我猜这是由于版本 6 及更高版本中映射类型的更改方式。有没有办法解决这个问题来查询旧索引?
var result = _elasticclient.GetAsync<Category>(id)
从成功的 (404) 低级别调用构建的无效 nesT 响应 获取:/myindex/_doc/15437 请求: 响应:{"_index":"2020-01-13","_type":"_doc","_id":"15437","found":false}
解决方法
作为一种解决方法,我这样做了,它似乎有效。不知道有没有更好的解决方案?
var response = _elasticClient.SearchAsync<Category>(s => s
.Query(q => q
.Bool(b => b
.Must(
bs => bs.Term(p => p.Id,id),bs => bs.Term(p => p.Field("_type").Value("category"))
)
)
)
)