Как задать перезапись top_terms_N с помощью Nest SDK для Elastic?
Эластичная версия 5.2 У меня есть этот запрос в эластичной DSL.
POST my-index/_search
{
"query": {
"wildcard": {
"Author": {
"value": "*joe*",
"rewrite": "top_terms_15"
}
}
}
}
Я хочу написать тот же запрос, используя Nest SDK.
private Nest.WildcardQuery CreateQuery()
{
Nest.WildcardQuery query = new Nest.WildcardQuery();
query.Field = "Author";
query.Value = "*joe*";
query.Rewrite = Nest.RewriteMultiTerm.TopTermsN;
//Now how to specify a value for N ?
return query;
}
Как я могу указать значение для N? (при использовании Nest.RewriteMultiTerm.TopTermsN)
Эластичная версия 5.2.1 Kibana версия 5.2.1 Nest версия 5.2.0
1 ответ
Это ошибка в Elastic SDK, и, по словам людей из Elastic, это будет исправлено в следующем выпуске 5.x.
Полную информацию можно найти на эластичном форуме.
https://discuss.elastic.co/t/how-to-specify-top-terms-n-rewrite-using-nest-sdk/77743/3
В соответствии с этим есть решение этой проблемы, пока исправление не будет доступно.
Обход Используйте низкий клиент, выставленный на NEST.
var response = client.LowLevel.Search<SearchResponse<object>>("my-index",
@"{
""query"": {
""wildcard"": {
""Author"": {
""value"": ""*joe*"",
""rewrite"": ""top_terms_15""
}
}
}
}");
// a search response that you would be returned from a NEST search query
var nestResponse = response.Body;