原创

Es-DSL语句

# 获取所有索引库信息
GET _cat/indices?v

# 删除索引库  delete/索引库名
DELETE /skuinfo

# 添加索引库 put/索引库名
PUT /user

#添加映射(相当于在数据库中给表添加字段)
# put /索引库名/类型/_mapping
# type:类型
# analyzer:入库时使用的分词器
# search_analyzer:搜索时使用的分词器
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
    }
  }
}


# 向索引库添加数据
# put/索引库/类型/索引
PUT /user/userinfo/4
{
  "name":"ylj",
  "age":23,
  "city":"江西",
  "description":"小公主",
  "address":"江西省"
}

#修改数据(删除原来的 再添加,不推荐使用)
PUT /user/userinfo/4
{
  "address":"江西省上饶市"
}

# 修改数据 只更改指定的数据
# post /索引库/类型/索引/_update
POST /user/userinfo/4/_update
{
  "doc": {
    "address":"江西省上饶市"
  }
}


# 删除数据
# delete /索引库/类型/索引
DELETE /user/userinfo/4

# 查询指定的数据
# get /索引库/类型/索引
GET /user/userinfo/4

# 查询所有数据
GET _search


# 排序 根据age 降序
# query:查询条件
GET /user/userinfo/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}


# 分页
# from:起始页
# size:每页的条数
GET /user/userinfo/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 2
}

# 词项搜索
# term 一般用于精确匹配
GET /user/userinfo/_search
{
  "query": {
    "term": {
      "city": {
        "value": "江西"
      }
    }
  }
}

# 多个词项搜索
GET /user/userinfo/_search
{
  "query": {
    "terms": {
      "description": [
        "天使",
        "公主"
      ]
    }
  }
}

# 范围过滤 如:按年龄范围查询 18 到 35岁
GET /user/userinfo/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 18,
        "lte": 35
      }
    }
  }
}

# exists过滤:查询拥有指定字段的数据 
# 如:查询拥有address的数据
GET /user/userinfo/_search
{
  "query": {
    "exists":{
      "field":"address"
    }
  }
}



#重点 bool 多条件过滤
# 查询地址是江西 并且年龄20-30之间
GET /user/userinfo/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "city": {
              "value": "江西"
            }
          }
        },
        {
          "range": {
            "age": {
              "gte": 20,
              "lte": 30
            }
          }
        }
      ]
    }
  }
}


# 查询所有
GET /user/userinfo/_search
{
  "query": {
    "match_all": {}
  }
}

# 按词匹配
# match一般用于模糊匹配
GET /user/userinfo/_search
{
  "query": {
    "match": {
      "name": "俞"
    }
  }
}

# 前缀匹配
# 如:搜索指定姓氏的数据
GET /user/userinfo/_search
{
  "query": {
    "prefix": {
      "name": {
        "value": "俞"
      }
    }
  }
}

# 多个域匹配
# 比如搜索名字或者地址都包括 '莉'的数据
GET /user/userinfo/_search
{
  "query": {
    "multi_match": {
      "query": "莉",
      "fields": [
          "name",
          "city"
        ]
    }
  }
}

工作

留言板