通过kibana操作es
method | url地址 | 描述 |
---|
PUT | ip:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) | POST | ip:9200/索引名称/类型名称 | 创建文档(随机文档id) | POST | ip:9200/索引名称/类型名称/文档id/_update | 修改文档 | DELETE | ip:9200/索引名称/类型名称/文档id | 删除文档 | GET | ip:9200/索引名称/类型名称/文档id | 通过文档id查询文档 | POST | ip:9200/索引名称/类型名称/_search | 查询所有数据 |
关于索引的基本操作
1、创建一个索引
PUT /test1/type1/1
 同时我们去看elasticsearch head  我们会发现多了一个索引  并且可以查看到我们刚刚插入的数据
2、es的类型
3、创建字段类型
 可以通过get请求获得信息 
4、查看默认的信息
  如果自己的文档字段没有指定类型,那么es会默认配置字段类型 扩展: 使用GET _cat命令可以查看一些默认的配置
**5、修改 ** 提交还是使用PUT 即可 ! 然后覆盖 新的修改方式 POST _update 推荐使用

6、删除
DELETE test1
关于文档的基本操作
1、创建数据
PUT school/_doc/1
{
"name": "张三",
"age": 15,
"desc": "法外狂徒张三",
"tags": ["旅游", "渣男"]
}
2、获取数据

3、更新数据 PUT

4.POST _update 推荐使用这种方式

5、搜索
简单搜索
GET school/_doc/2
或者
GET school/_doc/_search?q=desc:牛牛

复杂搜索
GET school/_doc/_search
{
"query":{
"match":{
"desc": "牛牛 勇敢"
}
},
"_source": ["name", "desc"]
}
 match 可以支持多条件查询,使用空格隔开
排序
GET school/_doc/_search
{
"query":{
"match":{
"desc": "牛牛"
}
},
"sort": [
{
"age":{
"order": "desc"
}
}
]
}
分页
GET school/_doc/_search
{
"query":{
"match":{
"desc": "牛牛"
}
},
"sort": [
{
"age":{
"order": "desc"
}
}
],
"from": 0,
"size": 1
}
from 起始值 size条数,数据下标从零开始的
布尔值查询
GET school/_doc/_search
{
"query":{
"bool":{
"must":[
{
"match": {
"desc": "牛牛"
}
},
{
"match": {
"age": 30
}
}
]
}
}
}
must相当于and
GET school/_doc/_search
{
"query":{
"bool":{
"should":[
{
"match": {
"desc": "牛牛"
}
},
{
"match": {
"age": 30
}
}
]
}
}
}
should相当于or
GET school/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"desc": "牛牛"
}
},
{
"match": {
"age": 18
}
}
]
}
}
}
must_not相当于not
过滤 filter
GET school/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"desc": "牛牛"
}
}
],
"filter": {
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
}
}
}
}
- gt: 大于
- gte: 大于等于
- lt: 小于
- lte: 小于等于
精确匹配 term
term和match的区别在于 term不对查询的关键字分词,match对查询的关键字分词,所以产生查询结果不一样的效果 再加上 字段类型text会分词, keyword不会分词,所以用term和match来分别查询 text和keyword类型的字段会产生不一样的效果
- 字段类型为keyword, 使用term查询时, 需要两者完全匹配才会被命中(区分大小写)
- 字段类型为keyword,使用match查询时,还是需要两者完全匹配才会被命中(区分大小写)
- 字段类型为text,使用term查询时,text分词,term不分词,需要term查询的关键字和text分词后的结果能匹配上的才会被命中(不区分大小写)
- 字段类型为text,使用match查询时,text分词,match分词,需要text分词后的结果和match分词后的结果能匹配上的才能被命中(不区分大小写)
高亮查询
GET school/_search
{
"query": {
"match": {
"desc": "牛牛"
}
},
"highlight": {
"fields": {
"desc": {}
}
}
}
 自定义高亮条件
GET school/_search
{
"query": {
"match": {
"desc": "牛牛"
}
},
"highlight": {
"pre_tags": "<p class='key', style='color:red'>",
"post_tags": "</p>",
"fields": {
"desc": {}
}
}
}

|