2
這是我第一次嘗試使用elasticsearch。我不確定如何解決下面的JsonReaderException錯誤。JsonReaderException爲elasticsearch創建批量索引
var result = client.Bulk(d => descriptor);
導致異常錯誤
類型「Newtonsoft.Json.JsonReaderException」發生在 Newtonsoft.Json.dll的例外,但是在用戶代碼沒有處理
附加信息:讀取字符串時出錯。意外的令牌: StartObject。路徑 '項[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": "[email protected]",
"AreaName": "Pl",
"Department": 1,
"Class": 1a,
"SubClass": 0,
"GenreName": "",
"ArtistName": "",
"CityName": ""
}
]
Araaargh!謝謝。多麼愚蠢的事情。 – LoztInSpace