これは、elasticsearch を使用した最初の試みです。以下の JsonReaderException エラーのトラブルシューティング方法がわかりません。
var result = client.Bulk(d => descriptor);
例外エラーが発生します
タイプ 'Newtonsoft.Json.JsonReaderException' の例外が Newtonsoft.Json.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: 文字列の読み取り中にエラーが発生しました。予期しないトークン: 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; }
}
}
シリアル化された sqlTrack
[
{
"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": ""
}
]