【发布时间】:2014-03-10 18:27:51
【问题描述】:
我正在尝试将多个分析器映射到我的弹性类型中的一个字段。如果我使用 ElasticAttribute 来映射分析器:
[ElasticProperty(Analyzer = "fulltext")]
public string LongDescription { get; set; }
然后我查看创建的请求:
"name": {
"type": "string",
"analyzer": "fulltext"
},
为了将多个分析器映射到同一个字段,我使用 Fluent 映射并添加了一个多字段:
.Properties(prop => prop
.MultiField(mf => mf
.Name(p => p.Name)
.Fields(f => f
.String(
s =>
s.Name(n => n.Name)
.IndexAnalyzer("autocomplete_analyzer")
.IncludeInAll(false)
.Index(FieldIndexOption.not_analyzed))
.String(
s =>
s.Name(n => n.Name)
.IndexAnalyzer("fulltext")
.IncludeInAll(false)
.Index(FieldIndexOption.not_analyzed))
)
)
)
生成的请求如下所示:
"name": {
"type": "multi_field",
"fields": {
"name": {
"type": "string",
"index": "not_analyzed",
"index_analyzer": "autocomplete_analyzer",
"include_in_all": false
},
"name": {
"type": "string",
"index": "not_analyzed",
"index_analyzer": "fulltext",
"include_in_all": false
}
}
},
我对“analyzer”/“index_analyzer”属性特别感兴趣。使用流畅的映射,我只能设置 IndexAnalyzer 或 SearchAnalyzer。我了解 IndexAnalyzer 和 SearchAnalyzer 之间的区别,但是当我使用 ElasticAttribute 时,“分析器”属性是什么?这是否意味着索引和搜索设置相同?
【问题讨论】:
标签: c# elasticsearch nest