簡體   English   中英

JsonReaderException為Elasticsearch創建批量索引

[英]JsonReaderException creating bulk index for elasticsearch

這是我第一次使用elasticsearch。 我不確定如何解決以下JsonReaderException錯誤。

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

導致異常錯誤

Newtonsoft.Json.dll中發生了類型為'Newtonsoft.Json.JsonReaderException'的異常,但未在用戶代碼中處理

附加信息:讀取字符串時出錯。 意外的令牌:StartObject。 路徑“ 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": ""
    }
]

將索引更改為所有小寫字母即可解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM