Elasticsearch 安装请参考 搭建ELK日志管理平台 - - 2 ElasticSearch部署
01 创建索引
curl -XPUT 172.16.255.131:9200/vipinfo # 创建数据库
curl -XPUT 172.16.255.131:9200/vipinfo?pretty # json格式返回输出
- 主节点:默认配置是1个分片1个副本
-
主数据分片: 数据在分片中被分组存储,例如如果分片是3个的话,存入数据
hello
可能被拆分存储在这几个分片之中 - 副本数据分片: 对数据分片的拷贝
- 集群健康值: 黄色表示当前配置不满足默认配置,但是存储的数据是完整的
设置索引的分片与备份:
例如创建索引配置为分为5个分片,每个分片1个副本的语句如下:
curl -XPUT '172.16.255.131:9200/logsys?pretty' -H 'Content-Type:application/json' -d'{"settings": { "index": {"number_of_shards": 5, "number_of_replicas": 1}}}'
值得注意的是,在创建索引时,索引名不能包含大写字母。
02 插入文档数据
往user类型中插入3条json格式的数据,/user/1
主键id不能重复,如果不指定id会随机生成id
ES相较于MySql的特点 :ES在插入数据时不需要预先创建数据库和数据表,在插入过程中如果数据库或表不存在,则直接根据插入语句中/vipinfo/user/
创建对应的数据库和表。
插入数据提高性能的一种操作方式:ES的特点之一随机id机制不会出现重复情况,所以在插入数据时不自己指定主键id,这样可以直接避免在插入数据过程中进行主键id判断的性能损耗。使用随机主键的一个缺点就是给查询带来困难,一种解决方案就是在插入的数据中单独设置一个类似于MySql中主键的字段自定义主键id,便于查询操作。
curl -XPUT '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 25,
"about": "I love you",
"interests": ["basketball","music"]
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/2?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 25,
"about": "I love you",
"interests": ["basketball","music"]
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/3?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 25,
"about": "I love you",
"interests": ["basketball","music"]
}'
03 查询数据
- 在ES-head插件中查询:实时查询,直接在对应字段进行关键词查询
-
查询索引所有数据:使用 GET 方法,然后增加
_search
命令查询索引中所有数据
curl -XGET 172.16.255.131:9200/vipinfo/_search?pretty
- 根据主键id查询文档数据:使用 GET 方法,并指定类型和主键id查询对应数据
curl -XGET 172.16.255.131:9200/vipinfo/user/1?pretty
-
根据指定条件查询文档数据:使用 GET 方法,并使用
_search
命令和类似于MySql中的where的命令q=type_name
传查询条件参数
curl -XGET '172.16.255.131:9200/vipinfo/user/_search?p=first_name:Wang&pretty'
curl -XGET '172.16.255.131:9200/vipinfo/user/_search?p=age:25&pretty'
- 使用Query-string查询:可用于多条件查询
curl -XPUT '172.16.255.131:9200/vipinfo/user/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"first_name": "Wang"
}
}
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"bool": {
"must": {
"match": {
"first_name": "Wang"
}
},
"filter": {
"range": {
"age": {"lt": 30}
}
}
}
}
}'
- 更加简单的查询-使用工具:直接使用ES-head插件进行查询,可以设置多个条件,直接避免了复杂繁琐的命令语句查询
文章来源:https://www.toymoban.com/news/detail-414928.html
04 修改文档数据
- PUT方法更新:需要和插入一样填写完整的信息
curl -XPUT '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 30,
"about": "I love you",
"interests": ["basketball","music"]
}'
- POST方法更新:只需要填写需要更改的信息,但是可能出现其他数据被覆盖的情况
curl -XPOST '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{
"age": 30
}'
-
更加简单的修改-使用工具:直接使用ES-head插件的复合查询功能进行修改,可以反复使用,减少重复工作
05 删除数据
- DELETE方法删除数据:直接使用DELETE方法删除文档数据或者整个索引
curl -XPUT '172.16.255.131:9200/vipinfo/uesr/1?pretty'
curl -XPUT 172.16.255.131:9200/vipinfo?pretty
- 更加简单的删除-使用工具:直接使用ES-head插件的复合查询功能进行删除,可以反复使用,减少重复工作
文章来源地址https://www.toymoban.com/news/detail-414928.html
到了这里,关于Elasticsearch 基础操作与 ES-head 插件的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!