Elasticsearch学习RESTful api

1、创建非结构化索引

       在Lucene中,创建索引是需要定义字段名称以及字段的类型的,在Elasticsearch中提供了非结构化的索引,就是不需要创建索引结构,即可写入数据到索引中,实际上在Elasticsearch底层会进行结构化操作,此操作对用户是透明的。

1)通过在可视化工具进行创建

2)通过api进行创建

number_of_shards表示分片的数量;number_of_replicas表示副本的数量

PUT http://192.168.142.128:9200/haoke
Headers: key: Content-Type   value: application/json
{
  "settings": {
    "index": {
      "number_of_shards": "2",
      "number_of_replicas": "0"
    }
  }
}

 

2、删除索引

DELETE http://192.168.142.128:9200/haoke

3、插入数据

URL规则:
#id为非必须,有传入以传入为准,没有传入则会自动生成
POST http://192.168.142.128:9200/{索引}/{类型}/{id}
POST/PUT http://192.168.142.128:9200/haoke/user/1001 
{
  "id": 1001,
  "name": "张三",
  "age": 20,
  "sex": "男"
}

不指定id

POST http://192.168.142.128:9200/haoke/user
{
  "id": 1002,
  "name": "李四",
  "age": 21,
  "sex": "女"
}

4、更新文档数据

在Elasticsearch中,文档数据是不为修改的,但是可以通过覆盖的方式进行更新

这里更新之后,_version字段值加1

PUT http://192.168.142.128:9200/haoke/user/1001
{
  "id": 1001,
  "name": "张三",
  "age": 21,
  "sex": "女"
}

进行局部更新数据,在路径末尾加_update,将更新的数据写在doc中

POST http://192.168.142.128:9200/haoke/user/1001/_update 
{
  "doc": {
    "age": 23
  }
}

5、删除数据
在Elasticsearch中,删除文档数据,发起DELETE请求、路径后面加上{id}

DELETE http://192.168.142.128:9200/haoke/user/1001
#说明:删除一个文档也不会立即从磁盘上移除,它只是被标记成已删除。Elasticsearch将会在你之后添加更多索引的时候才会在后台进行删除内容的清理。

6、搜索数据

1)根据id进行数据的查寻

GET http://192.168.142.128:9200/haoke/user/1001

2)搜索全部数据,在url末尾加上_search,默认10条数据 

GET http://192.168.142.128:9200/haoke/user/_search

3)关键字搜素数据

#查寻年龄为20的数据
http://192.168.142.128:9200/haoke/user/_search?q=age:20

7、DSL搜索

       Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。

查询年龄为20的信息

POST http://192.168.142.128:9200/haoke/user/_search 
{
  "query": {
    "match": {
      "age": 20
    }
  }
}

查询年龄大于22岁性别为男的信息

POST http://192.168.142.128:9200/haoke/user/_search 
{
  "query": {
  	"bool":{
  		"must":{
			"match": {
	    		"sex": "男"
	    	}
  		},
	  	"filter":{
	  		"range":{
	  			"age":{
	  				"gt":22
	  			}
	  		}
	  	}
  	}
  }
}

全文搜索(这里会进行会词)

http://192.168.142.128:9200/haoke/user/_search 
{
  "query": {
  	"match":{
  		"name":"张三李四"
  	}
  }
}

8、高亮显示

加入关键字highlight,并指定fields字段

http://192.168.142.128:9200/haoke/user/_search 
{
  "query": {
  	"match":{
  		"name":"张三李四"
  	}
  },
  "highlight":{
  	"fields":{
  		"name":{}
  	}
  }
}

9、聚合

在Elasticsearch中,支持聚合操作,类似SQL中的group by操作。

http://192.168.142.128:9200/haoke/user/_search 
{
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "age"
      }
    }
  }
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值