Как задать перезапись 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;
Другие вопросы по тегам