【问题标题】:How to add mapping fields when indexing data with Elasticsearch and Nestjs使用 Elasticsearch 和 Nestjs 索引数据时如何添加映射字段
【发布时间】:2022-02-22 04:10:13
【问题描述】:

我正在使用ElasticSearch 构建一个 NestJS 应用程序。我已经能够使用从oficial elasticsearch lib 包装的客户端插入一些数据。由于我的数据将具有特定字段,其中一个是对象(该对象可能有多个字段,包括对象),我想从将添加到该索引的数据中映射整个字段。 此时我的代码如下所示:

let insertedData = await this.elasticSearch.index({index: 'products', body:{
            name: 'Window',
            material: 'glass',
            observation: {
                type: '1'
            }
     }})

映射将是:名称:字符串,材料:字符串,观察:展平。我找不到显示如何使用客户端映射数据的方法

【问题讨论】:

    标签: typescript elasticsearch mapping nestjs


    【解决方案1】:

    搜索一些帖子和博客文章,正确的方法是使用: indices.create 那么,你需要使用putMapping。代码如下所示:

    this.elasticSearch.indices.create({index: 'products'});
    this.elasticSearch.indices.putMapping({
                    index: 'products',
                    body:{
                        properties:{
                            name:     { type: 'text' },
                            material:    { type: 'text' },
                            observation:        { type: 'flattened' },
    
                        }
                    }
                });
    

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 2012-02-20
      相关资源
      最近更新 更多