Elasticsearch

作用

用于部署全文搜索服务器,内核由Lucene编写,用于解决大数据量的全文搜索和

实例

  1. 修改config下elasticsearch.yml
    在这里插入图片描述
    ps:启动有可能失败,由于ES消耗服务器资源较大,需要调整硬件容量限制

  2. 集成IK分词器
    原有的分词器对中文字符不太友好

在/usr/local/server/es(ik分词器包路径),解压包
unzip elasticsearch-analysis-ik-5.6.8.zip -d ./ik(-d表示当前目录directive,.表示当前目录)
mv elasticsearch ik (目录一致就是改名,目录不一致才是移动)

  1. 将解压好的IK分词器拷贝到elasticsearch的plungins中
    这里是拷贝到docker容器中(docker cp ik elasticsearch:/usr/share/elasticsearch/plungins)

IK分词器

自定义分词
修改IKAnalyzer.cfg.xml配置文件,添加自定义分词文件

自定义停用分词
修改IKAnalyzer.cfg.xml配置文件,添加停用词汇文件

Kibana

作用
跟ES进行协作操作的数据分析工具,实现对日志的实时分析和对es数据的交互,elasticsearch-head功能单一所以不使用

DSL

#查询所有索引库
GET _cat/indices?v

#删除索引库,userinfo为索引库名,ps:语句不能加分号;
DELETE /userinfo

#新增索引库
PUT /user

#创建映射(user为索引库名(数据库名),userinfo为类型名(数据库表),_mapping表示映射)
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 /user/userinfo/1
{
  "name":"li si",
  "age": 20,
  "city": "shenzhen",
  "description":"something testing"
}

#根据ID查询
GET /user/userinfo/1

#修改数据(修改会删除原始数据,相当于覆盖)
PUT /user/userinfo/1
{
  "name":"wang wu"
}

#更新数据正确打开方式
POST /user/userinfo/1/_update
{
  "doc": {
    "name": "wang wu"
  }
}

#删除数据
DELETE /user/userinfo/1

#查询user索引库所有数据
GET /user/_search

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

#分页查询
GET /user/userinfo/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 10
}

#词项搜索
GET /user/userinfo/_search
{
  "query": {
    "term": {
      "age": {
        "value": "20"
      }
    }
  }
}

#多个值搜索
GET /user/userinfo/_search
{
  "query": {
    "terms": {
      "age": 
      [
        20
      ]
    }
  }
}

#范围过滤(gt大于lt小于e等于)
GET /user/userinfo/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 10,
        "lte": 20
      }
    }
  }
}

#查询存在city域的数据
GET /user/userinfo/_search
{
  "query": {
    "exists":{
      "field": "city"
    }
  }
}

#搜索年龄在10~20的,并且在深圳的用户
GET /user/userinfo/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "city": {
              "value": "shenzhen"
            }
          }
        },
        {
          "range": {
            "age": {
              "gte": 10,
              "lte": 20
            }
          }
        }
      ]
    }
  }
}

#根据分词查询字符匹配
GET /user/userinfo/_search
{
  "query": {
    "match": {
      "city": "shenzhen"
    }
  }
}

#前缀查询
GET /user/userinfo/_search
{
  "query": {
    "prefix": {
      "name": {
        "value": "wang"
      }
    }
  }
}

#多个域匹配搜索
GET /user/userinfo/_search
{
  "query": {
    "multi_match": {
      "query": "s",
      "fields": [
          "city",
          "description"
        ]
    }
  }
}```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值