无法在附件内容字段中更改分析器

时间:2016-01-14 21:01:45

标签: elasticsearch nest elasticsearch-net

我正在使用Elasticsearch 2.1和Mapper Attachment插件3.1.0

我想要做的是使用NEST创建索引并使用我的C#类来创建该类型的映射。该类型有一个'附件'字段,但我希望附件属性的内容字段具有不同于默认值的分析器。我在我的类的ElasticProperty属性中指定了分析器,但这个更改似乎永远不会在映射中设置。

这是一个小测试应用程序,显示我正在尝试做的事情:

class Program
{
    static void Main(string[] args)
    {
        var client = Connect();

        CreateIndex(client);
    }

    private static void CreateIndex(IElasticClient client)
    {

        client.CreateIndex("test1", c => c
            .NumberOfReplicas(0)
            .NumberOfShards(1)
            .Settings(s => s
                .Add("merge.policy.merge_factor", "10")
                .Add("search.slowlog.threshold.fetch.warn", "1s")
            )
            .AddMapping<MyDocument>(m => m.MapFromAttributes())
        );
    }

    private static IElasticClient Connect()
    {
        var node = new Uri("http://192.168.99.100:9200");
        var config = new ConnectionSettings(node);

        return new ElasticClient(config);
    }

    private class MyDocument
    {
        public string Name { get; set; }

        public int Age { get; set; }
        [ElasticProperty(Type = FieldType.Attachment, TermVector = TermVectorOption.WithPositionsOffsets)]
        public Attachment File { get; set; }
    }

    private class Attachment
    {
        [ElasticProperty(Analyzer="english", Name ="_content")]
        public string Contents { get; set; }
    }
}

0 个答案:

没有答案