使用 Elasticsearch Nest 7.x 查询 5.x 索引

问题描述

我有一个使用 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"))
                        )
                    )
                )
            )

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...