如何在 .net core 中使用 ElasticSearch 和 REST API?

问题描述

我是 .NET 的新手。我面临使用 RESTful API 将文档插入 Elasticsearch 的问题。触发 IndexAsync 方法时出现以下错误

无法从用法推断方法“Elasticclient.IndexAsync(IIndexRequest,CancellationToken)”的类型参数。尝试明确指定类型参数。

下面是我实际运行的代码。感谢任何指向正确方向的指针。

// add new record into elastic
public bool Add(T item)
{
    try
    {
        //_client.IndexDocument(item);
        return _client.Index(item).Created;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
    
// add new record into elastic in an asynchronous manner
public async Task<bool> AddAsync(T item)
{
    try
    {
        var response = await _client.IndexAsync(item);
        return response.Created;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

解决方法

在您的方法中,您正在定义输入 T item,它定义 item 是泛型类型 T。对此有一些参考资料,例如 here

如果你声明,你的方法中的逻辑只能推断类型 T

public bool Add<T>(T item)
{
... 
} 
public async Task<bool> AddAsync<T>(T item)
{
... 
} 

通过这种方式,您的类型参数 T 可以在您的方法的上下文中访问。

如果这不能解决您的问题,请提供有关您的代码和用例的更多详细信息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...