我正在使用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; }
}
}