ElasticSearch 学习一: 基本命令
2024-08-24 03:24:34
1. 启动时指定集群和节点的名字
./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name
e.g. ./elasticsearch -d -Ecluster.name=shjCluster -Enode.name=shjNode1 # -d 表示后台启动 用 jps 可以查看是否有 Elasticsearch 的进程 这时,只能通过 localhost 访问 elasticsearch。需要修改下面的配置才能让其它的机器也能访问。
vim config/elasticsearch.yml
增加 network.host: 0.0.0.0 在这个配置文件中,更改其它的配置,可以不用每次启动都指定参数:
cluster.name: shj-es-cluster # 指定要加入的集群名称
node.name: esnode-1 # 指定节点
path.data: tmp/esdata # 指定数据文件位置
path.logs: tmp/eslog # 指定日志位置 启动错误的话,可以先看: https://www.cnblogs.com/honeybee/p/6283623.html 访问: http://192.168.137.11:9200/?pretty 检查是否启动成功 批量导入数据:(在包含 accounts.json 的目录下执行下面的命令)
curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"
2. 使用 kibana 访问 ES:
修改 kibana.yml 文件中的 elasticsearch.url,指向 ES,本例中为: http://192.168.137.11:9200
后台启动 kibana: nohup ../bin/kibana &
访问 kibana http://localhost:5601 在 kibana 的 Dev Tools 中的 console 里输入
检查集群的状态
GET /_cat/health?v 一些命令:
(1) 创建一个document: PUT /indexName/typeName/id 示例:
PUT /ecommerce/product/1
{
"name" : "gaolujie yagao",
"desc" : "gaoxiao meibai",
"price" : 20,
"producer" : "gaolujie producer",
"tags": [ "meibai", "fangzhu" ]
} (2) 查询: GET /index/type/id 示例:
GET /ecommerce/product/1 (3) 更新文档: POST /indexName/typeName/id/_update 示例:
POST /ecommerce/product/1/_update
{
"doc": {
"name": "jiaqiangban gaolujie yagao"
}
}
上面只会更新 name 这一个字段 (4) 删除文档: DELETE /indexName/typeName/id (5) 条件查询 GET /ecommerce/product/_search
(a) 查询所有的商品
GET /ecommerce/product/_search
{
"query": { "match_all": {} }
} (b) 查询名称包含yagao的商品,同时按照价格降序排序
GET /ecommerce/product/_search
{
"query" : {
"match" : {
"name" : "yagao"
}
},
"sort": [
{ "price": "desc" }
]
} (c) 分页查询商品,
GET /ecommerce/product/_search
{
"query": { "match_all": {} },
"from": 1, # 从第几条(下标从0开始)开始查询
"size": 10 # 查询多少条记录
} (d) 指定要查询出来商品的名称和价格就可以
GET /ecommerce/product/_search
{
"query": { "match_all": {} },
"_source": ["name", "price"]
} (e) 搜索商品名称包含yagao,而且售价大于25元的商品
GET /ecommerce/product/_search
{
"query" : {
"bool" : {
"must" : {
"match" : {
"name" : "yagao"
}
},
"filter" : {
"range" : {
"price" : { "gt" : 25 }
}
}
}
}
} (f) 全文检索
GET /ecommerce/product/_search
{
"query" : {
"match" : {
"producer" : "yagao producer"
}
}
}
注意: 会搜索出所有包含 "yagao" 和 "producer" 的记录。类似于数据库搜索中的 producer='yagao' or producer=‘producer' (g) 短语检索
GET /ecommerce/product/_search
{
"query" : {
"match_phrase" : {
"producer" : "yagao producer"
}
}
}
注意: 类似于数据库搜索中的 producer='yagao producer' (h) 高亮搜索
GET /ecommerce/product/_search
{
"query" : {
"match" : {
"producer" : "yagao"
}
},
"highlight": {
"fields" : {
"producer" : {}
}
}
} (6) 只返回部分字段
GET /ecommerce/product/1?_source=name,price
批量查询
1. 不同 index 和 type
GET /_mget
{
"docs" : [
{
"_index" : "test_index",
"_type" : "test_type",
"_id" : 1
},
{
"_index" : "test_index",
"_type" : "test_type",
"_id" : 2
}
]
}
2. 如果查询的document是一个index下的不同type种的话
GET /test_index/_mget
{
"docs" : [
{
"_type" : "test_type",
"_id" : 1
},
{
"_type" : "test_type",
"_id" : 2
}
]
}
3. 如果查询的数据都在同一个index下的同一个type下 GET /test_index/test_type/_mget
{
"ids": [1, 2]
}
最新文章
- java中的乱码问题
- STL笔记(1)map
- android 使用两个surfaceview 在摄像机画面上绘图
- 安装SQLServer2008后Windows防火墙上的端口开放
- 1002 A + B Problem II [ACM刷题]
- HDU--1358--KMP算法失配函数getfail()的理解--Period
- Conditional Random Fields (CRF) 初理解
- OpenCV手写数字字符识别(基于k近邻算法)
- 知其所以然~redis的原子性
- 【Python全栈-JavaScript】JavaScript的window.onload()与jQuery 的ready()的区别
- linq 实现对象映射
- 滑块视图容器   swiper
- Java学习笔记49(DBUtils工具类二)
- .NET Core开发日志——简述路由
- 并查集——易爆物D305
- BFC(块级格式化上下文)
- js第三天知识点 循环
- Weblogic 错误 <;BEA-000403>; <;BEA-000438>;解决办法
- Using Dtrace OEL 6.X
- 10.Spring——框架的AOP
热门文章
- scanf ---------未完待续
- Unity3D之Mesh(二)为三角形添加纹理
- Java_注解_异常_01_ElementType cannot be resolved to a variable
- codeforces 628B B. New Skateboard (数论)
- Post提交和Get提交的区别
- Java 实现 JS的eval函数
- IDEA-Eclipse结构项目转移到 Idea教程
- Agc011_C Squared Graph
- 2017-2018-1 20179215《Linux内核原理与分析》第七周作业
- Trilead,SSH2的Java调用