【问题标题】:How to define multiple analyzers for an elasticsearch index via NEST client fluent syntax如何通过 NEST 客户端流利的语法为弹性搜索索引定义多个分析器
【发布时间】: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


    【解决方案1】:

    你需要这样做:

    _client.Indices.Create(Settings.GetElasticIndex(), c => c
        .Settings(s => s
            .Analysis(a => a
                .Analyzers(aa => aa
                    .Standard("standard_english", sa => sa.StopWords("_english_"))
                    .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"))
                )
            )
        );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-27
      • 1970-01-01
      相关资源
      最近更新 更多