elasticsearch Elasticsearch/NEST 6-将枚举存储为字符串,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch Elasticsearch/NEST 6-将枚举存储为字符串,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch Elasticsearch/NEST 6-将枚举存储为字符串

elasticsearch Elasticsearch/NEST 6-将枚举存储为字符串,elasticsearch,nest,elasticsearch,Nest,是否可以将枚举作为字符串存储在NEST6中 我试过这个,但似乎不起作用。有什么建议吗 var pool = new SingleNodeConnectionPool(new Uri(context.ConnectionString)); connectionSettings = new ConnectionSettings(pool, connection, SourceSerializer()); private static ConnectionSettings.SourceSer

是否可以将枚举作为字符串存储在NEST6中

我试过这个,但似乎不起作用。有什么建议吗

var pool = new SingleNodeConnectionPool(new Uri(context.ConnectionString));
connectionSettings = new ConnectionSettings(pool, connection, SourceSerializer());

    private static ConnectionSettings.SourceSerializerFactory SourceSerializer()
    {
        return (builtin, settings) => new JsonNetSerializer(builtin, settings,
            () => new JsonSerializerSettings
            {
                Converters = new List<JsonConverter>
                {
                    new StringEnumConverter()
                }
            });
    }
var pool=newsingleNodeConnectionPool(新Uri(context.ConnectionString));
connectionSettings=新的connectionSettings(池、连接、SourceSerializer());
私有静态连接设置。SourceSerializerFactory SourceSerializer()
{
return(内置,设置)=>新建JsonNetSerializer(内置,设置,
()=>新的JsonSerializerSettings
{
转换器=新列表
{
新的StringEnumConverter()
}
});
}
在属性上使用。这将向内部序列化程序发送信号,以将枚举序列化为字符串。在使用时,您不需要使用

如果要为所有枚举设置它,可以使用

private static void Main()
{
    var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
    var connectionSettings = new ConnectionSettings(
        pool, 
        (builtin, settings) => new JsonNetSerializer(builtin, settings,
            contractJsonConverters: new JsonConverter[] { new StringEnumConverter() }));

    var client = new ElasticClient(connectionSettings);

    client.Index(new Product { Foo = Foo.Bar }, i => i.Index("examples"));
}

public class Product
{
    public Foo Foo { get;set; }
}

public enum Foo
{
    Bar
}
这会产生一个请求,比如

POST http://localhost:9200/examples/product
{
  "foo": "Bar"
}

我认为您尝试设置转换器的方式也应该起作用,这是一个无法解决的错误。我将打开一个要解决的问题。

我不想使用属性。我想为所有枚举配置一次,就像在NEST5中一样。