学习elasticsearch

以下教程来自how2J,本人只是做学习记录。

下载的6.2.2,版本无所谓,但要安装jdk环境,7以上版本好像内置JDK环境了

下载后解压,在bin文件夹下有个elasticsearch.bat,双击启动

浏览器输入http://127.0.0.1:9200/

启动成功

 

接下来下载Kibana工具,里面有个 Dev Tools,以很方便地以Restful 风格向 ElasticSearch 服务器提交请求

 

下载后解压,还是在bin\kibana.bat启动

打开url:http://localhost:5601/app/kibana#/dev_tools/console?_g=()

 

在控制台里输入

GET /_cat/health?v


然后点击绿色箭头进行运行,就可以看到右侧出现查询结果
GET /_cat/health?v 这个命令用来查看服务器状态(健康度),green 表示一切OK

 

接下来进行Kibana索引管理

索引相当于就是一个数据库服务器上的某个数据库,所以索引也可以看成是Elastic Search里的某个数据库

增加索引

打开 kibana控制台:

http://localhost:5601/app/kibana#/dev_tools/console?_g=()


运行如下命令:

PUT /how2java?pretty


返回:

查询,GET /_cat/indices?v

删除运行如下命令:DELETE /how2java?pretty,再运行GET /_cat/indices?v 

 

接下来是中文分词器,很多项目使用的

分词器指的是搜索引擎如何使用关键字进行匹配,如 入门 中的关键字:护眼带光源。 如果使用like,那么%护眼带光源%,匹配出来的结果就是要么全匹配,要不都不匹配。
而使用分词器,就会把这个关键字分为 护眼,带,光源 3个关键字,这样就可以找到不同相关程度的结果了。

安装下,去bin目录下,打开cmd,从github上下载

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip

安装后要重启,下一步命令

GET _analyze

{

"analyzer":"ik_max_word",

"text":"护眼带光源"

}

中文分词器就学到这,下一个是    文档管理

PUT /how2java/product/1?pretty

{

"name": "蜡烛"

}

其中的product在elastic search里是type的概念,相当于数据库里的表,这里就相当于向 product 表里插入了一条数据

 

GET /how2java/product/1?pretty

修改文档

POST /how2java/product/1/_update?pretty

{

"doc": { "name": "蓝色蜡烛" }

}

 执行删除:DELETE /how2java/product/1?pretty

然后就get不到了 

 

接下来插入两条数据

POST _bulk
{"index":{"_index":"how2java","_type":"product","_id":10001}}
{"code":"540785126782","price":398,"name":"房屋卫士自流平美缝剂瓷砖地砖专用双组份真瓷胶防水填缝剂镏金色","place":"上海","category":"品质建材"}
{"index":{"_index":"how2java","_type":"product","_id":10002}}
{"code":"24727352473","price":21.799999237060547,"name":"艾瑞泽手工大号小号调温热熔胶枪玻璃胶枪硅胶条热溶胶棒20W-100W","place":"山东青岛","category":"品质建材"}
{"index":{"_index":"how2java","_type":"product","_id":10003}}

 使用命令查询how2java 索引里所有的数据:

GET /how2java/_search

{

"query": { "match_all": {} }

}

那如何插入大量的数据

准备个curl.exe和14万数据的json,放在同一个目录下,运行即可

确认curl.exe和products.json 在同一个目录后,假设他们所在目录是:

C:\Users\X7TI\Downloads\curl


在cmd中,运行如下命令:

cd C:\Users\X7TI\Downloads\curl

curl -H "Content-Type: application/json" -XPOST "localhost:9200/how2java/product/_bulk?refresh" --data-binary "@products.json"

 

导入完后,查询所有

GET /how2java/_search

{

"query": { "match_all": {} }

}

接下来就是各种查询的用法

比如,按照id倒序查询

GET /how2java/_search

{

"query": { "match_all": {} },

"sort": [

{ "_id": "desc" }

]

}

只返回部分字段

GET /how2java/_search
{
  "query": { "match_all": {} },
  "_source": ["name","price"]
}

还有条件查询

GET /how2java/_search

{

"query": { "match": { "name": "时尚连衣裙" } }

}

分页查询,这里from改为0,就可以看到最后一条

GET /how2java/_search

{

"query": { "match_all": {} },

"from": 1,

"size": 3,

"sort": { "_id": { "order": "desc" } }

}

 

聚合操作

GET /how2java/_search

{

"size": 0,

"aggs": {

"group_by_place": {

"terms": {

"field": "place.keyword",

"size": 3

}

}

}

}

相当于sql语句:

select count(*),place from product group by place limit 0,3

第一个size:0表示 不用显示每条数据,第二个size:3表示分组数据显示3条。

java就没啥好说的,都是调用api,以后在学

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值