elasticsearch _Elasticsearch中未自动生成id,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch _Elasticsearch中未自动生成id,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch _Elasticsearch中未自动生成id

elasticsearch _Elasticsearch中未自动生成id,elasticsearch,nest,elasticsearch,Nest,我有一个简单的SalesOrder类型的文档列表。在将它们插入弹性搜索时,\u id取SalesOrderId的值。我需要它是自动生成的。下面是我的班级 public class SalesOrder { [XmlElement("Id")] public long SalesOrderId { get; set; } public long CustomerId { get; set; } public Dat

我有一个简单的SalesOrder类型的文档列表。在将它们插入弹性搜索时,\u id取SalesOrderId的值。我需要它是自动生成的。下面是我的班级

    public class SalesOrder
    {
        [XmlElement("Id")]
        public long SalesOrderId { get; set; }

        public long CustomerId { get; set; }

        public DateTime? BookedDate { get; set; }

        public long SalesOrderNo { get; set; }
     }
这就是我在弹性搜索中插入文档的方式

            ElasticClient elasticClient = CreateElasticClient(indexName);

            if (!elasticClient.IndexExists(i => i.Index(indexName)).Exists)
            {
                elasticClient.CreateIndex(indexName, s => s.AddMapping<T>(m => m
                .MapFromAttributes()));
            }

            // create indexes
            var response = elasticClient.IndexMany<T>(documents);
ElasticClient ElasticClient=CreateElasticClient(indexName);
如果(!elasticClient.indexists(i=>i.Index(indexName)).Exists)
{
elasticClient.CreateIndex(indexName,s=>s.AddMapping(m=>m
.MapFromAttributes());
}
//创建索引
var响应=elasticClient.IndexMany(文件);

您可以指定ES使用的Id字段,如下所示:

[ElasticType(Name = "salesOrder", IdProperty = "Id")]
public class SalesOrder
{        
    public string Id {get;set;}//this is used internally by ES

    public long SalesOrderId { get; set; }

    public long CustomerId { get; set; }

    public DateTime? BookedDate { get; set; }

    public long SalesOrderNo { get; set; }
 }
注意:如果您填充Id,它将使用该值插入ES。如果您将其保留为空,ES将自动为您创建它


另外,如果您的SalesOrder类特定于ElasticSearch,那么它不应该有XmlElement标记

@jhilden-我正在使用同一个类来反序列化xml。在弹性搜索的情况下会有任何问题吗?添加[ElasticType]属性,并尝试使用其中的XML内容。它可能会起作用。这就是说,如果您在一个企业级系统上工作,那么最好为每个系统分别建立模型。