用到的工具索引数据操作
添加删除修改查询 复杂查询全文搜索 用到的工具
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":"张" } }}