全文检索服务器Elasticsearch

一、es的介绍

1、为什么要使用es?

%title% %cat_name% %desc% %sell_point%------->1、不支持索引  2、多次全表扫描

2、什么是es?

es是基于lucene的全文检索服务器,对外提供restful接口

3、es的原理【重点】

正排索引:查字典时从第一页开始找,直到找到为止(正文--->关键字)
倒排索引:查字典时通过目录查找(关键字---->正文)
倒排索引表的组成:
    doucument
    term------------------->document
    term
分词列表的特点:
            1、不重复
            2、“的 得 地”语气词不参加分词
            3、不搜索的field不参加分词

4、es的客户端

TransportClient:8.0会删除
RESTHighLevelClient:官方推荐

5、es的启动器

elasticsearch-rest-high-level-client

二、es的安装

1、安装

  • 1、设置虚拟内存为2G
  • 2、创建admin账户,并把upload和local目录的拥有者设置为admin
    groupadd elk
    usermod -G elk admin
    su admin
    groups
    su root
    chown -R admin:elk /usr/upload
    chown -R admin:elk /usr/local
    cd /usr
    ll
  • 3、切换账户
    su admin
  • 4、解压安装包
    cd /usr/upload
    tar -zxvf elasticsearch-6.2.3.tar.gz -C /usr/local
  • 5、修改elasticsearch.yml
    vim /usr/local/elasticsearch-6.2.3/config/elasticsearch.yml:
    cluster.name: power_shop
    node.name: power_shop_node_1
    network.host: 0.0.0.0
    http.port: 9200
    transport.tcp.port: 9300
    discovery.zen.ping.unicast.hosts: [“192.168.204.133:9300”, “192.168.204.134:9300”]
    path.data: /usr/local/elasticsearch-6.2.3/data
    path.logs: /usr/local/elasticsearch-6.2.3/logs
    http.cors.enabled: true
    http.cors.allow-origin: /.*/
  • 6、修改jvm.options
    vim /usr/local/elasticsearch-6.2.3/config/jvm.options:
    -Xms512m
    -Xmx512m
  • 7、修改文件创建权限
    su root
    vim /etc/security/limits.conf:
    * soft nofile 65536
    * hard nofile 65536
  • 8、修改虚拟内存大小
    su root
    vim /etc/sysctl.conf:
    vm.max_map_count=655360
    sysctl -p
  • 9、测试
    http://192.168.204.133:9200

2、启动和关闭

cd /usr/local/elasticsearch-6.2.3/bin
启动:
./elasticsearch

./elasticsearch -d

三、es入门

1、index管理

  • a、创建index
PUT /java10
    {
        "settings":{
            "number_of_shards":2, #主分片的数量,提高处理能力
            "number_of_replicas":0 #备份分配的数量,提高可用性
        }
    }

注意:一台服务器时,备份分片的数量必须设置为0

  • b、修改index
PUT /java10/_settings
    {
       "number_of_replicas":1
    }

注意:index一旦创建,主分片的数量不可修改,因为:hash(id) % number_of_primary_shards=shard

  • c、删除index
DELETE /java10

2、mapping管理

  • a、创建mapping
POST /java10/course/_mapping
    {
        "properties":{
            "name":{
                type:"text"
            }
        }
    }

3、document管理

  • a、新增document
POST /java10/course/1
    {
      "name":"python从入门到放弃",
      "description":"人生苦短,我用Python",
      "studymodel":"201002"
    }
  • b、修改document
PUT /java10/course/1
   {
     "name":".net从入门到放弃",
     "description":".net程序员谁都不服",
     "studymodel":"201003"
   }
  • c、删除document
DELETE /java10/course/1
  • d、查询document
GET /java10/course/1

四、ik分词器

  • 1、安装
    解压到/usr/local/elasticsearch-6.2.3/plugs,并重命名
  • 2、自定义词库
    IKAnalyzer.cfg.xml:配置扩展词典和停用词典
    main.dic:扩展词库,eg:奥利给
    stopword.dic:停用词库,eg:a、an、the、的、地、得

注意:必须另存为UTF-8格式

  • 3、分词模式
    ik_smart:粗粒度,搜索时使用
    ik_max_word:细粒度,往索引库写时使用

五、field的详细介绍【难】

  • 1、field的数据类型
    文本:text、keyword(特殊的varchar)
    数字:integer、long、float、double
  • 2、field的属性
    type:数据类型,eg:text、keyword、integer、long、float、double
    analyzer:分词模式,eg:analyzer=ik_max_word、search_analyzer=ik_smart
    index:是否往索引目录写,eg:true、false
    _source:document中是否存储,eg:excludes、includes
  • 3、filed属性的设置标准
    属性 标准
    type 分词是否有意义
    index 是否搜索
    _source 是否展示

六、es的集群搭建

  • 1、搭建步骤
    • 1)拷贝elasticsearch-1
    • 2)删除elasticsearch-2的data目录
    • 3)修改elasticsearch-2的elasticsearch.yml
      • node.name: power_shop_node_2
      • discovery.zen.ping.unicast.hosts: [“192.168.204.133:9300”, “192.168.204.134:9300”]
  • 2、实验
    • 1、修改备份分片的数量:1----->每个节点一主一备
    • 2、关闭节点2----->yellow(2 of 4)
    • 3、修改备份分片的数量:0,关闭节点2----->red(1 of 2)
  • 3、集群的健康状况
    • 绿色:正常
    • 黄色:备份分片不可用
    • 红色:主分片不可用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值