如何将原始JSON传递到ElasticSearch嵌套中的RegisterPercolator?
我正在尝试用C创建一个对象无关的Percolator microservice。我可以使用JSON对象创建并映射传递到我的方法中的索引,然后我甚至可以使用标准嵌套查询格式针对索引注册一个Percolator,例如:如何将原始JSON传递到ElasticSearch嵌套中的RegisterPercolator?,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我正在尝试用C创建一个对象无关的Percolator microservice。我可以使用JSON对象创建并映射传递到我的方法中的索引,然后我甚至可以使用标准嵌套查询格式针对索引注册一个Percolator,例如: var percolateResponse = client.RegisterPercolator<dynamic>(query .Name, p=>p .Index(index.ActualName) .Query(q=&g
var percolateResponse = client.RegisterPercolator<dynamic>(query
.Name, p=>p
.Index(index.ActualName)
.Query(q=>q
.Term(t=>t
.OnField("banana")
.Value("green"))));
但是,它没有将指定的查询注册为percolator查询,而是将RegisterPercolatorRequest的查询值设置为null,并且基本上取消了存在的查询
我尝试了许多不同格式的JSON,但没有发现.Queryq=>q.Rawquery.Context喜欢的东西
有人知道如何解决这个问题吗?我已经离解决这个问题越来越近了,但我从来没有完全解决过这个问题。这是创建percolator代理类的最后一个障碍。感谢您的帮助。谢谢
仅供参考,我在响应对象内部得到的错误如下:
[<indexName>] failed to parse query [<queryName>]];
nested: QueryParsingException[[<indexName>] [_na] query malformed,
no field after start_object
我想我已经找到了解决我想做的事情的方法。。。上面的查询不起作用,但通过一些尝试和错误,我发现了在对象不可知查询和注册percolator中的作用:
var percolateResponse = client.RegisterPercolator<dynamic>(query
.Name, p => p
.Index(index.ActualName)
.Query(q => q
.SimpleQueryString(sqs=>sqs
.Query(query.Context))));
这会将查询创建为一个简单的查询字符串,并将其存储在ElasticSearch中,然后当我尝试过滤匹配该查询的文档时,它似乎会起作用
[<indexName>] failed to parse query [<queryName>]];
nested: QueryParsingException[[<indexName>] [_na] query malformed,
no field after start_object
var percolateResponse = client.RegisterPercolator<dynamic>(query
.Name, p => p
.Index(index.ActualName)
.Query(q => q
.SimpleQueryString(sqs=>sqs
.Query(query.Context))));