c# - 当我们索引的类型是泛型时如何调用IElasticClient.Index()

标签 c# elasticsearch nest

当我有一个显式类型的对象时,索引就没有问题。例如,

EventObject e;
IElasticClient client;
client.Index(e); // perfectly valid

但是,我有一个类型为泛型的类。这是我的课
class FantasticClass<INDEXCLASS>
{
    IElasticClient client;
    public FantasticClass(IElasticClient c)
    {
        client = c;
    }

    public INDEXCLASS Add(INDEXCLASS entity)
    {
        client.Index(entity); // can't compile!
        // or
        client.Index<INDEXCLASS>(entity); // can't compile!
    }
}

推断类类型时如何使用Nest编制索引?

最佳答案

无法编译的问题是由于该类缺少声明INDEXCLASS类型的声明而导致的,因此应该可以解决该错误:

class FantasticClass<INDEXCLASS> where INDEXCLASS : class

此外,Add方法的返回类型为INDEXCLASS,但是该方法中未返回任何内容。将其编入索引后,可以将其更改为void或返回entity变量。

关于c# - 当我们索引的类型是泛型时如何调用IElasticClient.Index(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006712/

相关文章:

elasticsearch - 使用对象初始值设定项语法构建动态查询

c# - 不支持 ToString() 方法

c# - 枚举和案例陈述

c# - Unity 示例项目 "Roll a Ball"无法在 iPad 上运行(球不移动)?

elasticsearch - Elasticsearch Nest索引查询始终返回false

ElasticSearch - NEST - 如何组合 AND 和 OR 语句

c# - 为什么即使设置了 RecordSelectionFormula, Crystal 报表也会获取所有记录?

elasticsearch - 给包含所有查询词的文档更多的分数

python - 如何使用elasticsearch.helpers.scan获得聚合结果的分数

ruby-on-rails - ElasticSearch:索引具有参数的方法的结果