Вызов Elasticsearch Template Query с использованием NEST?
Есть ли способ вызвать шаблон запроса с помощью NEST? Есть ли примеры?
3 ответа
Конечная точка шаблона поиска еще не отображена в NEST и представляет собой небольшую проблему, поскольку она сильно отличается от того, как обычно создаются запросы. Сейчас мы работаем над этим ( в этой ветке) и надеемся получить эту функциональность в следующем выпуске 1.1. Вот ссылка на оригинальную проблему для целей отслеживания.
РЕДАКТИРОВАТЬ: забыл упомянуть, конечная точка доступна на клиенте Elasticsearch.Net низкого уровня, к которому вы можете получить доступ через ElasticClient
:
var client = new ElasticClient(...);
client.Raw.SearchTemplate(...);
Еще один вопрос по похожим строкам: действительно ли PutSearchTemplateDescriptor является методом записи для вызова предварительно зарегистрированного шаблона?
Я зарегистрировал шаблон в.scripts, но не смог найти правильный метод для вызова шаблона из клиента NEST
Конечная точка шаблона поиска была сопоставлена в NEST 2.x.
Вот общий пример шаблонов здесь: https://www.elastic.co/guide/en/elasticsearch/client/net-api/2.x/template-query-usage.html
Вот некоторая информация о том, как встроенные шаблоны могут использоваться в предложении фразы с опцией сортировки: 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()
)