【发布时间】:2016-01-27 06:05:22
【问题描述】:
我有以下属性
[Nested]
public List<TagModel> Tags { get; set; }
而在TagModel中有如下属性
[String]
public string Tag { get; set; }
我想使用 Nest 将 Tag 属性映射为多字段属性。
我认为这会起作用,
.String
(s => s.Name
(n => n.Tags.First()
.Tag)
.Fields
(fi => fi.String
(sub => sub.Name("partial")
.Analyzer("test"))
.String
(sub => sub.Name("middle")
.Analyzer("test2"))));
但在它输出的映射中,Tags 保持为:
"tags": {
"type": "nested",
"properties": {
"tag": {
"type": "string"
},
然后在映射结束时:
"tags.tag": {
"type": "string",
"fields": {
"partial": {
"type": "string",
"analyzer": "test",
},
"middle": {
"type": "string",
"analyzer": "test2",
},
并抛出异常400 说reason": "Field name [tags.tag] cannot contain '.'"
我猜它不喜欢名称中的 linq First() 调用(这很奇怪,因为在嵌套项目中的搜索确实接受了这个......)
那么我怎样才能映射一个在一个属性中使用的类中的属性,该属性是一个nested 项目本身......
目前使用 Nest 2.0.0 alpha-2
【问题讨论】:
标签: nest