当前位置: 首页 > 面试题库 >

Elasticsearch:在将JSON数据上传到Elasticsearch之前如何创建映射

唐元凯
2023-03-14
问题内容

我试图在将json数据上传到elasticsearch之前创建映射。我不知道如何在sails.js中上传json数据之前实现映射

这是我的bulkupload片段

     var body = [];
      //row is json data
        rows.forEach(function(row, id) {
             body.push({ index:  { _index: 'testindex', _type: 'testtype', _id: (id+1) } });
             body.push(row);
        })  
    client.bulk({
                    body: body
                }, function (err, resp) {
                        if (err) 
                        {
                            console.log(err);
                            return;
                       }
                      else 
                      { 
                            console.log("All Is Well");
                      }
      });

我想在数据上传之前创建映射。任何人都知道如何在帆中创建映射。

我的Json对象

 [ { Name: 'paranthn', Age: '43', Address: 'trichy' },
      { Name: 'Arthick', Age: '23', Address: 'trichy' },
      { Name: 'vel', Age: '24', Address: 'trichy' } ]

问题答案:

client.bulk()拨打电话之前,您首先需要client.indices.putMapping()拨打另一个这样的电话,以便为您要通过该bulk电话发送的数据保存正确的映射:

client.indices.putMapping({
   "index": "testindex",
   "type": "testtype",
   "body": {
      "testtype": {
          "properties": {
              "your_int_field": {
                  "type": "integer"
              },
              "your_string_field": {
                  "type": "string"
              },
              "your_double_field": {
                  "type": "double"
              },
              // your other fields
          }
      }
   }
}, function (err, response) {
   // from this point on, if you don't get any error, you may call bulk.
});

请记住,所有这些调用是异步的,所以一定要小心,只叫bulk一次,putMapping已成功返回。



 类似资料:
  • 我正在尝试创建弹性贴图 但我得到以下错误: [mapper_parsing_exception][agent_id]的映射定义有不受支持的参数:[field ddata: true]

  • 我必须使用elasticsearch和python为需要索引的json数据创建索引。例如,我有一个嵌套数组[[39.909971141540645,1452077285.150548,1452077286.196072,1.0455241203308105]]我需要为这个数组定义一个映射,比如第一个字段是count,第二个字段是start_time,end_time,duration。请帮助说明如

  • 问题内容: 我正在使用logstash将日志输入ElasticSearch。我将logstash输出配置为: 我注意到,一旦启动logstash,它就会在ES中创建一个映射(日志),如下所示。 如何防止Logstash创建此映射? 更新: 我现在也解决了此错误。 “ [logs]的对象映射试图解析为对象,但是得到了EOF,是否提供了具体的价值?” 正如John Petrone在下面所述,定义映射后

  • 问题内容: 我是Elasticsearch的新手,目前正在实现用于搜索的过滤器。到目前为止,我的索引具有以下映射(我已经删除了一些字段): geo_distance字段将在location字段上实现,示例实例如下所示: 即采用geoJSON格式。 我了解我将必须更新索引,以使location字段的类型为,如文档(mapping-geo- point )中所述。似乎我必须删除索引并创建一个新索引,但

  • 问题内容: 我将Elasticsearch用作文档数据库,并且我创建的每个记录都有一个GUID ID,系统将其用作记录ID。商界人士希望提供一种功能,使用户可以基于日期和迄今为止在这一天/每月创建的记录数来拥有自己的自动文件名约定。 我需要防止重复的用户文件名。有没有一种方法可以将索引字段设置为唯一?像sql唯一约束一样? 问题答案: 您需要使用应该唯一的字段作为文档的ID。默认情况下,具有现有I

  • 问题内容: 我是Elasticearch的新手,并且已经尝试了2天,将一些数据插入Elasticearch。我在Google上发现有很多页面可以帮助创建索引(我不清楚“ index”,换句话说是“插入”吗?)然后很多地方给出了curl命令,但我确实没有知道在哪里执行这些代码行以插入数据。例: 我正在使用Window 7,并且已安装Java并成功运行elasticsearch。任何人都可以向我展示有