【发布时间】:2020-08-10 10:34:23
【问题描述】:
我在使用 NEST v7.6.0 定义多个分析器(和令牌过滤器)时遇到问题
例如,使用此配置
_client.Indices.Create(Settings.GetElasticIndex(), c => c
.Settings(s => s
.Analysis(a => a
.Analyzers(aa => aa.Standard("standard_english", sa => sa.StopWords("_english_")))
.Analyzers(aa => aa.Custom("randomcustom", sa => sa.Tokenizer("standard"))))
)
.Map<POCO>(mm =>
mm.AutoMap()
.Properties(p => p
.Text(t => t.Name(n => n.Field1).Analyzer("standard_english"))
.Text(t => t.Name(n => n.Field2).Analyzer("randomcustom"))
)
)
);
我在创建索引时收到以下错误:
远程服务器返回错误:(400) Bad Request.. Call: Status code 400 from: PUT /xxx。 ServerError:类型:mapper_parsing_exception 原因:“无法解析映射 [_doc]:未找到字段 [xxx] 的分析器 [standard_english]” CausedBy:“类型:mapper_parsing_exception 原因:“未找到字段 [xxx] 的分析器 [standard_english]”
如果我切换定义,我可以参考 standard_english 分析器,但不能参考 randomcustom 分析器,所以最后获胜。如何使用流畅的语法定义多个分析器?
【问题讨论】:
标签: c# elasticsearch nest