ElasticSearch学习,对索引的操作

使用分词器

ik_smart 最少拆分
ik_max_word 最细粒度拆分

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "我爱北京天安门"
}

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "我爱北京天安门"
}

配置自己的分词器

在这里插入图片描述
将需要的词写在dic文件中

关于索引基础操作

创建一个索引

PUT /test1/type1/1
{
  "name":"张三",
  "age":18
}

在这里插入图片描述

在这里插入图片描述

指定字段类型

PUT /test2
{
  "mappings": {
    "properties": { 
      "name":{
        "type":"text"
      },
      "age":{
        "type":"long"
      },
      "birthday":{
        "type":"date"
      }
    }
  }
}

在这里插入图片描述

获取具体信息

GET test2

也可以获取默认信息,如果文档字段没有指定类型,那么es会默认配置字段类型
在这里插入图片描述
使用条件查询

GET user/info/_search?q=name:张三

修改索引

  1. 可以继续提交使用put,覆盖,不建议使用
  2. 试用post
POST /test1/type1/1/_update
{
  "doc":{
    "name":"李四"
  }
}

删除索引

delete test2

各种查询操作

查询

GET /user/info/_search
{
  "query": {
    "match": {
      "name": "张三"
    }
  }
}

结果过滤,只返回name和desc

GET /user/info/_search
{
  "query": {
    "match": {
      "name": "张三"
    }
  },
  "_source": ["name","desc"]
}

排序

根据 age 字段进行排序,desc 降序,asc 升序

GET /user/info/_search
{
  "query": {
    "match": {
      "name": "张三"
    }
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

结果分页 from代表从什么时候开始, size代表返回的数量

GET /user/info/_search
{
  "query": {
    "match": {
      "name": "张三"
    }
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 20
}

布尔值查询

使用布尔值进行精准匹配 must必须(and) should 应该(or) must_not 必须不是

GET /user/info/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "张三"
          }
        }
      ]
    }
  }
}

filter过滤器筛选查询

  • gt 大于
  • gte 大于等于
  • lte 小于
  • lte 小于等于
GET /user/info/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "张三"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "age": {
              "gte":10
            }
          }
        }
      ]
    }
  }
}

精确查询

term查询时直接通过倒排索引指定的词条进行精确查找

关于分词

  • term , 直接查询精确的
  • match,会使用分词器解析

两个类型,text,keyword

keyword 不会被分词器解析,会被当做整个词

高亮查询 *

搜索相关的词,会自动使用标签

GET  /user/info/_search
{
  "query": {
    "match": {
      "name": "张三"
    }
  },
  "highlight": {
    "fields": {
      "name":{}
    }
  }
}

在这里插入图片描述

可以使用自定义html和css添加样式

GET  /user/info/_search
{
  "query": {
    "match": {
      "name": "张三"
    }
  },
  "highlight": {
    "pre_tags": "<b>", 
    "post_tags": "</b>", 
    "fields": {
      "name":{}
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值