使用NEST调用Elasticsearch模板查询?

时间:2014-09-05 17:43:16

标签: templates elasticsearch nest elasticsearch-net elasticsearch-template

有没有办法使用NEST调用模板查询?有没有例子?

3 个答案:

答案 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

以下是有关如何使用collat​​e选项在短语建议中使用内联模板的一些信息: 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客户端调用模板的正确方法