Вызов 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()
)
Другие вопросы по тегам