2
votes

Les arguments de type pour la méthode 'ElasticClient.Index (IIndexRequest )' ne peuvent pas être déduits de l'utilisation

J'apprends ElasticSearch en suivant l'exemple elasticsearch-net- exemple . L'erreur se produit dans le code suivant:

var result = Client.Index<FeedPackage>(package);

J'ai essayé de spécifier le type de l'argument comme suit:

        foreach (var package in packages)
        {
            var result = Client.Index(package); <--The type arguments for method 'ElasticClient.Index<T>(IIndexRequest<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

            if (!result.IsValid)
            {
                Console.WriteLine(result.DebugInformation);
                Console.Read();
                Environment.Exit(1);
            }
        }

mais cela conduit à une autre erreur:

Argument 1: impossible de convertir de «NuSearch.Domain.Model.FeedPackage» en «Nest.IIndexRequest» NuSearch.Indexer

Pouvez-vous me dire ce que je fais faux? La question est peut-être trop simple, mais j'ai eu des difficultés avec elle.


0 commentaires

3 Réponses :


1
votes

Si je comprends bien, ElasticSearch n'a pas pu déterminer le nom du type par la valeur d'entrée, vous devez donc ajouter son nom dans le deuxième paramètre:

var result = Client.Index<FeedPackage>(package, i => i.Type("package"));


0 commentaires

0
votes

J'ai eu le même problème il y a à peine une minute. Assurez-vous que vous utilisez la bonne version du client .net. Dans mon cas, je cherchais doc pour la version 1.x en utilisant la version 7.x du client - peut-être mauvais :)

La version actuelle est disponible ici: https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/nest-getting-started.html


0 commentaires

0
votes

Je viens de rencontrer le même problème. Changer le code en var result = Client.Index (package, i => i.Type ("package")); comme MiXaiL l'a suggéré dans sa réponse votée ne fonctionne pas car il a gagné ' t compiler. Cependant, changer simplement Index () en IndexDocument () fonctionne à merveille:

var result = Client.IndexDocument(package);


0 commentaires