4 votes

Modifier le track_total_hits d'ElasticSearch dans NEST

J'étais en train d'exécuter des exemples de pensée d'ElasticSearch, et j'ai lu ce lien qui indique qu'il y a une valeur par défaut fixée à 10 000, qui peut également être modifiée sur les appels de recherche, comme dans cet exemple

GET twitter/_search
{
    "track_total_hits": 100,
     "query": {
        "match" : {
            "message" : "Elasticsearch"
        }
     }
}

Le problème est que j'essaie de faire la même chose sur NEST, mais je n'arrive pas à le reproduire. La seule chose similaire que j'ai trouvée, n'accepte qu'une valeur booléenne et non un nombre. Est-il possible de modifier le total via NEST ?

Voici le code que j'ai essayé :

var results = elasticClient.Search<MyClass>(s => s
             .Query(q => q.QueryString(q2 => q2.Query(readLine)
             .Fields(f => f.Field(p => p.MyField)))).TrackTotalHits(true));

3voto

Andrey Borisko Points 767

Comme indiqué par @russcam aquí pour le moment, vous pouvez le faire via le casting ISearchRequest a IRequest<SearchRequestParameters> :

var client = new ElasticClient();

var searchResponse = client.Search<Document>(s =>
{
    IRequest<SearchRequestParameters> request = s;
    request.RequestParameters.SetQueryString("track_total_hits", 1000);

    return s;
});

Il l'appliquera comme paramètre de la chaîne de recherche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X