常用DSL语句
查看所有索引
GET /_cat/indices?v
删除某个索引
DELETE /skuinfo
新增索引
PUT /user
创建映射
PUT /user/userinfo/_mapping
{
"properties": {
"name": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"store": false
},
"city": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"store": false
},
"age": {
"type": "long",
"store": false
},
"description": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"store": false
}
}
}
新增文档数据 id=1
PUT /user/userinfo/1
{
"name": "小明",
"age": 22,
"city": "深圳",
"description": "小明来自湖北武汉!"
}
更新数据(PUT会更新所有域的数据)
PUT /user/userinfo/1
{
"name": "小美",
"description": "在武汉读书,家在武汉!在深圳工作!"
}
更新数据(POST只更新某个域的数据)
POST /user/userinfo/1/_update
{
"doc": {
"name": "张三丰",
"description": "在武汉读书,家在武汉!在深圳工作!"
}
}
根据ID查询
GET /user/userinfo/1
根据ID删除数据
DELETE user/userinfo/1
查询当前索引所有文档内容
GET /user/_search
降序搜索(order : desc)
GET /user/_search
{
"query": {
"match_all": {}
},
"sort": {
"age": {
"order": "desc"
}
}
}
升序搜索(order : asc)
GET /user/_search
{
"query": {
"match_all": {}
},
"sort": {
"age": {
"order": "asc"
}
}
}
分页实现(from:从n的记录开始查询;size:每页显示条数)
GET /user/_search
{
"query": {
"match_all": {}
},
"sort": {
"age": {
"order": "desc"
}
},
"from": 0,
"size": 3
}
单词过滤查询(term)
GET _search
{
"query": {
"term": {
"city": "武汉"
}
}
}
多词过滤查询(terms)
GET _search
{
"query": {
"terms": {
"city": [
"武汉",
"广州"
]
}
}
}
范围过滤(range;gt表示> gte表示=>;lt表示< lte表示<=)
GET _search
{
"query": {
"range": {
"age": {
"gte": 30,
"lte": 57
}
}
}
}
包含某个域的数据检索(exists)
GET _search
{
"query": {
"exists": {
"field": "address"
}
}
}
过滤搜索 bool (must : 多个查询条件的完全匹配,相当于 and;
must_not : 多个查询条件的相反匹配,相当于 not;
should : 至少有一个查询条件匹配, 相当于 or)
GET _search
{
"query": {
"bool": {
"must": [
{
"term": {
"city": {
"value": "深圳"
}
}
},
{
"range": {
"age": {
"gte": 20,
"lte": 99
}
}
]
}
}
}
查询所有索引的所有文档( match_all)
GET _search
{
"query": {
"match_all": {}
}
}
字符串查询(match:标准搜索;会对搜索条件进行分词后再查询)
GET _search
{
"query": {
"match": {
"description": "武汉"
}
}
}
前缀匹配(prefix)
GET _search
{
"query": {
"prefix": {
"name": {
"value": "小"
}
}
}
}
多个域匹配搜索(multi_match)
GET _search
{
"query": {
"multi_match": {
"query": "深圳",
"fields": [
"city",
"description"
]
}
}
}
通配符搜索(wildcard;*代表0~N个字符,使用?代表1个字符)
GET _search
{
"query": {
"wildcard": {
"name": "小?"
}
}
}