我是Elasticearch的新手,我已经尝试了2天将一些数据插入到Elasticearch中。 我在Google上发现有很多页面可以帮助创建索引(我不清楚“索引”,它是否意味着“插入”在其他方面?) 然后很多地方给出了一些curl命令,我真的不知道在哪里执行这些代码行来插入数据。例如:
curl -XPOST "http://[localhost]:9200/indexname/typename/optionalUniqueId" -d '{ "field" : "value" }'
我正在使用Window 7,我已经安装了Java并成功运行了elasticsearch。 任何人都可以向我展示有关如何将数据插入Elasticearch的更多细节
非常感谢
答案 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和非常成熟的插件。