【问题标题】:JsonReaderException creating bulk index for elasticsearchJsonReaderException 为 elasticsearch 创建批量索引
【发布时间】:2016-02-12 21:40:26
【问题描述】:

这是我第一次尝试使用 elasticsearch。我不确定如何解决下面的 JsonReaderException 错误。

var result = client.Bulk(d => descriptor);

导致异常错误

“Newtonsoft.Json.JsonReaderException”类型的异常发生在 Newtonsoft.Json.dll 但未在用户代码中处理

附加信息:读取字符串时出错。意外的标记: 起始对象。路径 'items[0].index.error',第 1 行,位置 108。

var client = new ElasticClient();
client.DeleteIndex("Tracks");
client.CreateIndex("Tracks", c => c
.NumberOfReplicas(1)
.NumberOfShards(6)
.AddMapping<vw_MusicTracks>(m => m.MapFromAttributes()));

var descriptor = new BulkDescriptor();
var context = new MerchEntities();
var sqlTracks = context.vw_MusicTracks.ToList<vw_MusicTracks>();

foreach (var order in sqlTracks)
{
    descriptor.Index<vw_MusicTracks>(op => op.Index("Tracks").Document(order).Type("Track").Id(order.IMUTrackId));
}
    var result = client.Bulk(d => descriptor);
Console.WriteLine("job's done");
Console.ReadKey();

vw_MusicRules.cs

using Nest;
using System.ComponentModel.DataAnnotations;
using System;
using System.Collections.Generic;
namespace MusicStore
{

      [ElasticType(Name = "Track", IdProperty = "IMUTrackId")]
    public partial class vw_MusicTracks
    {
          [Key]
        public int IMUTrackId { get; set; }
        public int IMUTrackTypeId { get; set; }
        public int AreaId { get; set; }
        public int GenreId { get; set; }
        public int CityId { get; set; }
        public int ArtistId { get; set; }
        public System.DateTime Live { get; set; }
        public Nullable<System.DateTime> LiveThrough { get; set; }
        public decimal Value { get; set; }
        public short Priority { get; set; }
        public System.DateTime LastModified { get; set; }
        public int LastModifierId { get; set; }
        public System.DateTime Created { get; set; }
        public string IMUTrackType { get; set; }
        public string ModifierUserName { get; set; }
        public string ModifierFirstName { get; set; }
        public string ModifierLastName { get; set; }
        public string ModifierEmail { get; set; }
        public string AreaName { get; set; }
        public Nullable<int> Department { get; set; }
        public Nullable<int> Class { get; set; }
        public Nullable<int> SubClass { get; set; }
        public string Class { get; set; }
        public string GenreName { get; set; }
        public string ArtistName { get; set; }
        public string CityName { get; set; }
    }
}

序列化的 sqlTracks

[
    {
        "IMUTrackId": 3,
        "IMUTrackTypeId": 1,
        "AreaId": 1,
        "GenreId": -1,
        "CityId": -1,
        "ArtistId": -1,
        "Live": "2014-01-01T00:00:00",
        "LiveThrough": "2015-11-11T00:00:00",
        "Value": 1.2195,
        "Priority": 1,
        "LastModified": "2014-02-25T00:00:00",
        "LastModifierId": 218,
        "Created": "2014-02-25T00:00:00",
        "IMUTrackType": "Mult",
        "ModifierUserName": "SystemUser",
        "ModifierFirstName": "First",
        "ModifierLastName": "",
        "ModifierEmail": "dev@email.ex",
        "AreaName": "Pl",
        "Department": 1,
        "Class": 1a,
        "SubClass": 0,
        "GenreName": "",
        "ArtistName": "",
        "CityName": ""
    }
]

【问题讨论】:

    标签: json elasticsearch json.net nest elasticsearch-net


    【解决方案1】:

    将索引改为小写即可解决问题。

    【讨论】:

    • 阿拉啊!谢谢你。多么愚蠢的事情。
    猜你喜欢
    • 2016-04-06
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2016-01-25
    相关资源
    最近更新 更多