用到的工具索引数据操作
添加删除修改查询 复杂查询全文搜索
用到的工具Elasticsearch
Kibana:方便的查询。
见Docker——配置Elasticsearch
索引Kibana界面地址:http://localhost:5601/app/dev_tools#/console
创建
user是索引名称。
PUT /user
获取
GET /user
删除
DELETe /user
列出所有
GET /_cat/indices?v数据操作 添加
POST /user/_doc
{
"name":"张三",
"age":23
}
指定ID
POST /user/_doc/1
{
"name":"李四",
"age":16
}
删除
DELETE /user/_doc/1修改
put全部修改
PUT /user/_doc/1
{
"age":26
}
post修改一部分
POST /user/_update/1
{
"doc":{
"age":11
}
}
查询
所有
GET /user/_search
指定列,排除列
GET /user/_search
{
"_source": {
"includes": ["name"],
"excludes": ["age"]
}
}
ID查
GET /user/_search/1复杂查询
查询文档数量
GET /user/_count
查询一个词语的分词结果
POST /_analyze
{
"text": ["hello world"]
}
条件查询
GET /user/_search
{
"query": {
"match":{
"age":"24"
}
}
}
分页查询
GET /user/_search
{
"query": {
"match":{
"age":"24"
}
},
"from": 0,
"size":1
}
筛选列
GET /user/_search
{
"query": {
"match":{
"age":"24"
}
},
"from": 0,
"size":1,
"_source": ["name"]
}
排序
GET /user/_search
{
"query": {
"match":{
"age":"24"
}
},
"from": 0,
"size":1,
"_source": ["name"],
"sort": {
"age": {
"order": "desc"
}
}
}
多条件
而且
GET /user/_search
{
"query": {
"bool":{
"must":[
{
"match": {
"age": "24"
}
},{
"match": {
"name": "张三"
}
}
]
}
}
}
或者
GET /user/_search
{
"query": {
"bool":{
"should":[
{
"match": {
"age": "24"
}
},{
"match": {
"age": "16"
}
}
]
}
}
}
范围
GET /user/_search
{
"query": {
"bool":{
"filter": {
"range": {
"age": {
"gte": 18,
"lte": 200
}
}
}
}
}
}
高亮显示(HTML处理)
GET /user/_search
{
"query": {
"match":{
"name":"张"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
分组
GET /user/_search
{
"aggs": {
"通缉名单": {
"terms": {
"field": "age"
}
}
}
}
统计
GET /user/_search
{
"aggs": {
"通缉名单": {
"avg": {
"field": "age"
}
}
}
}
全文搜索
之前只是当SQL来用,很捞。
查一个张,就能查到张三
GET /user/_search
{
"query": {
"match":{
"name":"张"
}
}
}
完全匹配,只有张才行。
GET /user/_search
{
"query": {
"match_phrase":{
"name":"张"
}
}
}



