1

以前はelastic 1.7を使用していました。2.0 への移行後、私はいくつかの問題に直面しました (ここに私が現在最も注目している問題があります):マッピング属性json シリアライゼーション

2.0 バージョンでは見つからない次の属性を ElasticPropertyプロパティで使用しましName, Boost, OptOutた。

settitgs.SetJsonSerializerSettingsModifier(x => x.DateParseHandling = DateParseHandling.DateTimeOffset)新しい APIの代わりが見つかりません。

私が見つけた唯一の有用なドキュメントは、破壊的変更です。悲しいことに、ネストの例は時代遅れです。簡単なことを見逃している可能性があります。正しい方向に向けてください。

編集

したがって、 属性Name, Boostの一部ですString

4

1 に答える 1

6

広告 1。

この部分はリファクタリングされており、現在は使用できませんElasticProperty。これは一連の新しい属性に置き換えられました (重大な変更点で説明されているように) 。

例えば

[ElasticProperty(Name="name", Boost = 1.1, OptOut = true)]
public string Name {get; set;}

それは同等です

[String(Name="name", Boost = 1.1, Ignore = true)]
public string Name {get; set;}

Ad2。

次のように、 customJsonNetSerializerをに渡すことで、シリアライゼーション設定を変更できます。ConnectionSettings

var connectionPool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var settings = new ConnectionSettings(connectionPool, connectionSettings => new MyJsonNetSerializer(connectionSettings))
    .DefaultIndex(indexName)
    .DisableDirectStreaming()
    .PrettyJson();

public class MyJsonNetSerializer : JsonNetSerializer
{
    public MyJsonNetSerializer(IConnectionSettingsValues settings) : base(settings)
    {
    }

    protected override void ModifyJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings)
    {
        settings.DateParseHandling = DateParseHandling.DateTimeOffset;
    }
}

詳細はこちらこちら

移行が簡単になることを願っています:)

于 2016-02-19T10:39:16.727 に答える