elasticsearch,nest,C#,Json,.net,elasticsearch,Nest" /> elasticsearch,nest,C#,Json,.net,elasticsearch,Nest" />

C# nest7 Query.Raw(rawJson)提供无效的NEST响应,该响应是由POST上的一个不成功(400)低级调用生成的

C# nest7 Query.Raw(rawJson)提供无效的NEST响应,该响应是由POST上的一个不成功(400)低级调用生成的,c#,json,.net,elasticsearch,nest,C#,Json,.net,elasticsearch,Nest,我用来对Elasticsearch执行搜索的代码 string q2 = "{\"query\":{\"bool\":{\"must\":[{\"fuzzy\":{\"name\":{\"value\":\"zeorgia\",\"max_expansions\":\"1\"}}}],\"must_

我用来对Elasticsearch执行搜索的代码

string q2 = "{\"query\":{\"bool\":{\"must\":[{\"fuzzy\":{\"name\":{\"value\":\"zeorgia\",\"max_expansions\":\"1\"}}}],\"must_not\":[],\"should\":[]}},\"from\":0,\"size\":50,\"sort\":[],\"aggs\":{ }}";


ISearchResponse<Responder> response2 = await _elasticClient.SearchAsync<Responder>(s => s.Query(qry => qry.Raw(q2))).ConfigureAwait(false);
此API调用的审核跟踪:
  • [1] 错误响应:节点:take:00:00:01.2080980
OriginalException:Elasticsearch.Net.ElasticsearchClientException:请求未能执行。调用:状态代码400 from:POST/xyz idx/\u search?键入的\u keys=true。ServerError:Type:parsing_异常原因:“未知查询[query]”原因:“Type:named_object_not_found_异常原因:[1:19]未知字段[query]” 请求:

答复:

OriginalException={“请求未能执行。调用:状态代码400 from:POST/xyz idx/\u search?typed\u keys=true。服务器错误:类型:解析\u异常原因:“未知查询[查询]”原因:“类型:命名\u对象\u未找到\u异常原因:”[1:19]未知字段[q…”


请求执行失败。调用:状态代码400 from:POST/xyz idx/\u search?typed\u keys=true。服务器错误:Type:parsing\u异常原因:“未知查询[query]”原因:“Type:named\u object\u not\u found\u异常原因:“[1:19]未知字段[query]”

原始查询应该是将分配给
查询的JSON对象“
属性,即

var searchResponse=client.Search(s=>s
.Index(“索引名称,簇二:索引名称”)
.Query(q=>q
.Raw(“{\'fuzzy\':{\'name\':{\'value\':\'bank\'}}}”)
)
);
这相当于

var searchResponse=client.Search(s=>s
.Index(“索引名称,簇二:索引名称”)
.Query(q=>q
.Fuzzy(f=>f
.字段(“名称”)
.价值(“银行”)
)
)
);

我在NEST 7软件包中使用的是dot net web api。看来json没有正确转换,我想,你能帮我找到这个问题的解决方案吗!你使用原始查询的具体原因吗?另外,在通过
NEST
触发之前,你是否尝试通过kibana接口执行此查询?基本上我是des启动一个以原始json(查询dsl)为输入的dot net web API,然后我将其传递给elasticsearchClient以执行搜索。NEST 7库中的函数如下///Summary://使用原始json字符串定义的查询。//查询必须包含在{和}中“/////Parameters://rawJson://查询dsl-json-public-QueryContainer-Raw(string-rawJson);是的,我在postman中通过提供json(普通,不包含“/”和任何其他特殊字符){“查询”:{“bool”:{“must”:[{“fuzzy”:{“name”:{“value”:“zeorgia”,“max_expansions”:“1”}}}}],“must_not”:[],“should”:[]}],“from”:0,“size”:50,“sort”:[],“aggs”:{}}}并按我们的预期工作,但dot net web api+NEST 7无法完成此项工作
Invalid NEST response built from a unsuccessful (400) low level call on POST: /xyz-idx/_search?typed_keys=true