如何将数据插入到elasticsearch中

时间:2014-04-05 15:34:37

标签: curl elasticsearch

我是Elasticearch的新手,我已经尝试了2天将一些数据插入到Elasticearch中。 我在Google上发现有很多页面可以帮助创建索引(我不清楚“索引”,它是否意味着“插入”在其他方面?) 然后很多地方给出了一些curl命令,我真的不知道在哪里执行这些代码行来插入数据。例如:

curl -XPOST "http://[localhost]:9200/indexname/typename/optionalUniqueId" -d '{ "field" : "value" }'

我正在使用Window 7,我已经安装了Java并成功运行了elasticsearch。 任何人都可以向我展示有关如何将数据插入Elasticearch的更多细节

非常感谢

7 个答案:

答案 0 :(得分:54)

您必须先在PC中安装curl二进制文件。您可以下载from here

之后将其解压缩到一个文件夹中。让我们说C:\curl。在该文件夹中,您将找到包含多个curl.exe文件的.dll文件。

现在,从cmd键入start menu打开命令提示符。然后在那里输入cd c:\curl,它会转到curl文件夹。现在执行您拥有的curl命令。

有一件事,Windows不支持围绕字段的单引号。所以你必须使用双引号。例如,我已经将curl命令转换为适当的curl命令。

curl -H "Content-Type: application/json" -XPOST "http://localhost:9200/indexname/typename/optionalUniqueId" -d "{ \"field\" : \"value\"}"

答案 1 :(得分:8)

让我解释清楚..如果你熟悉rdbms ..索引是数据库..而索引类型是表..它的意思是索引是索引类型的集合。,像表的集合作为数据库(DB)。

在NOSQL中。索引是数据库,索引类型是集合。作为数据库的集合..

要执行这些查询...需要安装CURL for Windows。

Curl只不过是一个命令行休息工具..如果你想要一个图形工具..试试

Chrome的感知插件......

希望有所帮助......

答案 2 :(得分:4)

要测试并尝试来自Windows的curl请求,您可以使用Postman客户端Chrome扩展程序。它使用起来非常简单,非常强大。

或者按照建议您可以安装cURL util。

示例卷曲请求如下。

curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
"user" : "Arun Thundyill Saseendran",
"post_date" : "2009-03-23T12:30:00",
"message" : "trying out Elasticsearch"
}' "http://10.103.102.56:9200/sampleindex/sampletype/"

我也在开始和广泛探索ES。如果您有任何其他疑问,请告诉我。

编辑:将索引名称和类型名称更新为完全小写,以避免错误并遵循惯例。

答案 3 :(得分:1)

我开始使用 <mat-sidenav-container> <mat-sidenav-content style="height:99vh;"> <div style="float:left; margin:22px 0px 0px 32px;"> <div style="text-align:center;"> </div> <button mat-raised-button type="button" style="background-color:#3378a8;color:WHITE;height:45px;" (click)="sidenavOpen('sale',sidenav)"> <b>SALE</b> </button> <button mat-raised-button type="button" style="background-color:#3378a8;color:WHITE;height:45px;margin-left:2px;" (click)="sidenavOpen('upgrade',sidenav)"> <b>UPGRADE</b> </button> <div style="margin-top:53px"> <div> <salesByPackage></salesByPackage> </div> <div style="margin-top:240px;"> <salesByCampaign></salesByCampaign> </div> </div> </div> <div class="container" style="margin-top:20px;float:right"> <div class="col-lg-9"> <mat-tab-group #tab mat-stretch-tabs (selectedTabChange)="onTabClick($event)"> <mat-tab label="SALES"> <orders></orders> </mat-tab> <mat-tab label="UPGRADES"> <upgrades></upgrades> </mat-tab> </mat-tab-group> </div> <!-- Change to this --> <div class="col-lg-3"> <div> <salesForMonth></salesForMonth> </div> </div> </div> </mat-sidenav-content> ,但自从迁移后使用curl。以下是有关flex.co的ELK堆栈的更多信息(E elastic search,K kibana):https://www.elastic.co/elk-stack

使用kibana,您的kibana请求更简单:

POST

答案 4 :(得分:0)

为避免使用curl或Chrome插件,您只需使用内置的Windows Powershell。从Powershell命令窗口运行

Invoke-WebRequest -UseBasicParsing "http://127.0.0.1:9200/sampleindex/sampleType/" -
Method POST -ContentType "application/json" -Body '{
"user" : "Test",
"post_date" : "2017/11/13 11:07:00",
"message" : "trying out Elasticsearch"
}'

请注意,索引名称必须为小写。

答案 5 :(得分:0)

如果将KIBANA与elasticsearch一起使用,则可以使用下面的RESt请求创建并放入索引。

创建索引:

http://localhost:9200/company
PUT company
{
  "settings": {
    "index": {
      "number_of_shards": 1,
      "number_of_replicas": 1
    },
    "analysis": {
      "analyzer": {
        "analyzer-name": {
          "type": "custom",
          "tokenizer": "keyword",
          "filter": "lowercase"
        }
      }
    }
  },
  "mappings": {
    "employee": {
      "properties": {
        "age": {
          "type": "long"
        },
        "experience": {
          "type": "long"
        },
        "name": {
          "type": "text",
          "analyzer": "analyzer-name"
        }
      }
    }
  }
}

创建文档:

POST http://localhost:9200/company/employee/2/_create
{
"name": "Hemani",
"age" : 23,
"experienceInYears" : 2
}

答案 6 :(得分:-3)

简单的基础知识,Elastic社区已将索引,搜索,删除操作作为其他Web服务公开。 您可以使用curl或sense(chrome插件)或任何其他客户端(如postman)进行弹性交互。

如果您只是测试一些命令,我​​建议您可以使用sense chrome插件,它具有简单的UI和非常成熟的插件。