Elasticsearch总结

Elasticsearch docker安装

默认本机以安装docker服务,首先先启动docker服务

//启动docker服务
systemctl start docker
//查看docker已经启动的镜像
docker ps
//查看docker的下载镜像
docker images
//拉取Elasticsearch镜像
docker pull elasticsearch:6.5.4
//创建一个容器
docker create --name elasticsearch --net host -e "discovery.type=single-node" -e "network.host=10.212.130.5" elasticsearch:6.5.4
//启动一个容器
docker start elasticsearch
//查看启动日志
docker logs -f elasticsearch

Elasticsearch自身没有提供较好的界面管理工具,现在推荐Elasticsearch-head,安装过程如下

//拉取镜像
docker pull mobz/elasticsearch-head:5
//创建容器
docker create --name elasticsearch-head --port 9100:9100 elasticsearch-head:5
//启动插件
docker start elasticsearch-head

第二种方式安装elasticsearch的chrome插件,下载地址如下
https://github.com/TravisTX/elasticsearch-head-chrome  ##下载插件
相关RestClient工具github下载地址:
https://github.com/jarrodek/ChromeRestClient

ElasticSearch安装使用中文分词器

IK分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik
下载zip包之后

#安装方法:将下载到的elasticsearch-analysis-ik-6.5.4.zip解压到/elasticsearch/plugins/ik
目录下即可。
#如果使用docker运行
docker cp /tmp/elasticsearch-analysis-ik-6.5.4.zip
elasticsearch:/usr/share/elasticsearch/plugins/
#进入容器
docker exec -it elasticsearch /bin/bash
mkdir /usr/share/elasticsearch/plugins/ik
cd /usr/share/elasticsearch/plugins/ik
unzip elasticsearch-analysis-ik-6.5.4.zip
#重启容器即可
docker restart elasticsearch

测试中文分词器

POST http://172.16.55.185:9200/_analyze
{
   
"analyzer": "ik_max_word",
"text": "我是中国人"
}

全文搜素的几个概念

倒排索引

其是指将所有文档中的记录进行分词,将分词结果进行编号,然后遍历文档,并记录存在该单词的记录索引;形成倒排列表,倒排列表中往往还包含其他信息,如词频:某个词在该文档中出现的次数;单词在文档中出现的位置等,由此形成倒排索引。

全文搜素的俩个重要的方面是:

相关性:它是评价查询与结果的相关程度
分析:它是将文本块转换成有区别,规范化的一个token的过程

CentOS使用docker创建集群启动报错

[2019-08-19T08:11:12,879][INFO ][o.e.b.BootstrapChecks    ] [node01] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

对应的解决方案如下:

编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=655360
保存后,执行:
sysctl -p

ES的数据路由规则

shard = hash(routing) % number_of_primary_shards

	#routing 默认的是doc id,也可以自定义
	#number_of_primary_shards 节点的个数
	#shard: 这个routing字符串通过哈希函数生成一个数字,然后除以主切片的数量得到一个余数(remainder),余
数的范围永远是0到number_of_primary_shards - 1,这个数字就是特定文档所在的分片。

在这里插入图片描述

RestClient-结合java测试

package com.bdcloud.es.rest;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpHost;
import org.apache.http.util.EntityUtils;
import org.elasticsearch.client.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/***
 * 测试RestClien
 */
public class TestRest {
   

    private static final ObjectMapper obMappper = new ObjectMapper();

    private RestClient restClient;

    @Before
    public void init(){
   
        //构造RestClient
        RestClientBuilder restClientBuilder = RestClient.builder(
                new HttpHost("10.212.130.5",9200,"http"),
                new HttpHost("10.212.130.5",9201,"http"),
                new HttpHost("10.212.130.5",9202,"http")
        );
        //设置处理失败处理
        restClientBuilder.setFailureListener(new RestClient.FailureListener(){
   
            @Override
            public void onFailure(Node node) {
   
                System.out.println("出错了->"+node);
            }
        });
        //
        this.restClient = restClientBuilder.build();
    }

    /***
     * 查询集群状态信息
     */
    @Test
    public void searchClusterStatus() throws IOException {
   
        Request request = new Request("GET"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值