有没有办法使用NEST调用模板查询?有没有例子?
答案 0 :(得分:0)
search template端点尚未在NEST中映射,并且提出了一些挑战,因为它与正常构建查询的方式非常不同。我们现在正在努力解决这个问题(in this branch)并希望希望在即将发布的1.1版本中获得此功能。这是指向original issue的链接,用于跟踪目的。
编辑:忘记提及,端点在低级Elasticsearch.Net客户端上可用,您可以通过ElasticClient
访问该端点:
var client = new ElasticClient(...);
client.Raw.SearchTemplate(...);
答案 1 :(得分:0)
搜索模板端点已在NEST 2.x中映射。
这里有一个关于模板的一般例子: https://www.elastic.co/guide/en/elasticsearch/client/net-api/2.x/template-query-usage.html
以下是有关如何使用collate选项在短语建议中使用内联模板的一些信息: https://www.elastic.co/guide/en/elasticsearch/client/net-api/2.x/suggest-usage.html
以下是GitHub上的一个问题,我发布了一些有关如何将模板保存到Elastic的信息: https://github.com/elastic/elasticsearch-net/issues/2176
以下是如何使用NEST的一般示例:
var templateRequest= new PutSearchTemplateDescriptor(new Id("my_template"));
templateRequest.Template("{\"multi_match\":{\"query\":{\"query\":\"{{suggestion}}\",\"fields\":[\"field1\",\"field2\"]}}}");
var response = ElasticClient.PutSearchTemplate(templateRequest);
在建议整理中使用模板时:
.Collate(c => c
.Query(q => q
.Indexed("my_template")
)
.Prune()
)
答案 2 :(得分:0)
关于类似行的另一个问题,是PutSearchTemplateDescriptor是写方法来调用预先注册的模板吗?
我已将模板注册到.scripts但无法找到从NEST客户端调用模板的正确方法