ElasticSearch 2.0 NEST迁移

Ant*_*tau 1 elasticsearch nest elasticsearch-2.0

我之前使用过弹性1.7.迁移到2.0后,我遇到了几个问题(这里是我目前最关注的问题):映射属性,json序列化.

我使用了我在2.0版本中找不到的下一个属性 - ElasticProperty带有属性Name, Boost, OptOut.

我找不到settitgs.SetJsonSerializerSettingsModifier(x => x.DateParseHandling = DateParseHandling.DateTimeOffset)新api的替代品.

我找到的唯一有用的文件是破坏变化.可悲的是,但巢的例子已经过时了.可能我错过了一些简单的事情,请指出我正确的方向.

编辑

所以, 属性的Name, Boost一部分String

Rob*_*Rob 6

AD1.

这部分已经过重构,现在你无法使用ElasticProperty.它已被一堆新属性所取代(如破坏更改说明中所述)

例如

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

它相当于

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

等等

AD2.

您可以通过传递自定义JsonNetSerializer来修改序列化设置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;
    }
}
Run Code Online (Sandbox Code Playgroud)

更多细节在这里这里.

我希望它会让你的迁移变得更容易:)