- A+
所属分类:未分类
Elasticsearch下载安装
安装之前你需要关闭防火墙,关闭selinux,修改系统文件句柄数
关闭防火墙命令:
systemctl stop firewalld.service
关闭selinux:
修改/etc/selinux/config如下就行:
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
修改系统文件句柄数:
修改/etc/security/limits.conf成如下就行:
* hard nofile 65536 * soft nofile 65536
注:如果你系统对一些用户用户有特殊配置的话,你可已针对启动本次的elasticsearch用户授权就行了。我这里是为了省事。
修改内核参数:
etc/sysctl.conf文件中添加一行,如下:
vm.max_map_count = 262144
使其生效,如下:
sysctl -p
安装jdk
这一块不说了,自己直接搜索安装吧。
下载安装elasticsearch
下载如下:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
解压到/usr/local
tar -xzf elasticsearch-6.7.0.tar.gz -C /usr/local/
修改配置
vi /usr/local/elasticsearch-6.7.0/config/elasticsearch.yml
需要修改两处,如下:
network.host: 192.168.241.128 http.port: 9200 cluster.name: fitnesssearch
network.host为你本机ip,端口你自己根据自己情况修改,我这里9200,群集名称待会连接的时候需要用
创建普通用户,并给安装目录授权
useradd elastic chown -R elastic /usr/local/elasticsearch-6.7.0/
启动,root下启动如下:
su elastic -c "/usr/local/elasticsearch-6.7.0/bin/elasticsearch -d"
浏览器输入http://192.168.241.128:9200/结果如下:
{ "name" : "AAL3K9N", "cluster_name" : "elasticsearch", "cluster_uuid" : "N1x1t2diSk-rbmDR360h1Q", "version" : { "number" : "6.7.0", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "8453f77", "build_date" : "2019-03-21T15:32:29.844721Z", "build_snapshot" : false, "lucene_version" : "7.7.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
则ok了,如果失败,查看日志,日志在/usr/local/elasticsearch-6.7.0/logs下
安装中文分词器
我这里选elasticsearch-analysis-ik,elasticsearch对应的版本我选择ikv6.7.0的版本,安装如下:
# cd /usr/local/elasticsearch-6.7.0/bin # ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.7.0/elasticsearch-analysis-ik-6.7.0.zip
安装成功后重新启动el,查看日志如下,则说明安装成功:
[2019-08-01T12:06:13,316][INFO ][o.e.p.PluginsService ] [AAL3K9N] loaded plugin [analysis-ik]
现在我们验证一下,如下:
[root@k3s ~]# curl -XGET http://192.168.241.128:9200/_analyze?pretty -H 'Content-Type:application/json' -d' { "analyzer": "ik_smart", "text": "你大爷还是你大爷"}' { "tokens" : [ { "token" : "你", "start_offset" : 0, "end_offset" : 1, "type" : "CN_CHAR", "position" : 0 }, { "token" : "大爷", "start_offset" : 1, "end_offset" : 3, "type" : "CN_WORD", "position" : 1 }, { "token" : "还是", "start_offset" : 3, "end_offset" : 5, "type" : "CN_WORD", "position" : 2 }, { "token" : "你", "start_offset" : 5, "end_offset" : 6, "type" : "CN_CHAR", "position" : 3 }, { "token" : "大爷", "start_offset" : 6, "end_offset" : 8, "type" : "CN_WORD", "position" : 4 } ] }
安装简繁体转换插件
# cd /usr/local/elasticsearch-6.7.0/bin #./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-stconvert/releases/download/v6.7.0/elasticsearch-analysis-stconvert-6.7.0.zip
安装拼音分词插件
# cd /usr/local/elasticsearch-6.7.0/bin #./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.7.0/elasticsearch-analysis-pinyin-6.7.0.zip
springboot连接
主要引用的jar包如下:
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>6.4.3</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>6.4.3</version> <exclusions> <exclusion> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> </dependency>
主要连接代码如下:
Settings esSetting = Settings.builder() .put("cluster.name", clusterName) //集群名字 .put("client.transport.sniff", true)//增加嗅探机制,找到ES集群 .put("thread_pool.search.size", Integer.parseInt(poolSize))//增加线程池个数,暂时设为5 .build(); //配置信息Settings自定义 transportClient = new PreBuiltTransportClient(esSetting); TransportAddress transportAddress = new TransportAddress(InetAddress.getByName(hostName), Integer.valueOf(port)); transportClient.addTransportAddresses(transportAddress);
创建索引代码如下:
CreateIndexResponse indexresponse = client.admin().indices().prepareCreate(index).execute().actionGet(); LOGGER.info("执行建立成功?" + indexresponse.isAcknowledged()); return indexresponse.isAcknowledged();
然后我们写个测试api,如下:
/** *el创建索引 * @param * @return */ @RequestMapping(value = "/search/list", method = RequestMethod.POST) @ResponseBody @CrossOrigin public String createIndex() { String indexName = "indextest"; if (!ElasticsearchUtil.isIndexExist(indexName)) { ElasticsearchUtil.createIndex(indexName); } else { return "索引已存在"; } return "OK"; }
然后我们执行以下,通过客户端看看结果如下:
[root@k3s logs]# curl '192.168.241.128:9200/_cat/indices?v' health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open indextest ZooksK7pSyeLXSXJmC11yw 5 1 0 0 1.1kb 1.1kb
好到处结束,下一篇写以下如何通过中文分词器以及拼音和繁体字搜索
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫