elasticsearch搭建,学习,使用

elasticsearch搭建,学习,使用,第1张

elasticsearch搭建,学习,使用 系列文章目录

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

系列文章目录前言一、ES是什么?二、ES和Lucene和Solr的对比三、安装

1.ES的安装2.kibana的安装3.IK分词器的安装4.指定IK分词器作为默认分词器 总结


前言

仅仅个人学习使用


提示:以下是本篇文章正文内容,下面案例可供参考

一、ES是什么?

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。本次采用的是7.6.1版本,下载地址为:https://elasticsearch.cn/download/
以下版本推荐一致

二、ES和Lucene和Solr的对比

市面上流行的搜索引擎框架有ES和Lucene和Solr,下面是简单的对比。
Lucene

只能在java项目当中使用,并且要用jar包的方式启用使用非常复杂-创建索引和搜索引擎代码繁杂不支持集群环境-索引数据不同步(不支持大型项目)索引数据如果太多就不行,索引库和应用所在同一个服务器,共同占用磁盘,占用空间少。

Solr

Solr利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能Solr支持更多格式的数据,比如json,xml,csv。而elasticsearch仅仅支持jsonSolr在传统的搜索应用中表现好于elasticsearch,但在处理实际搜索应用时效率明显低于elasticsearch。Solr是传统搜索应用的有力解决方案,但elasticsearch更适用于新兴的实时搜索应用。 三、安装 1.ES的安装

es的安装不允许使用root用户报错信息:java.lang.RuntimeException: can not runelasticsearch as root

#增加用户组
sudo groupadd es
 
#增加用户,并规定所属用户组和密码
useradd es
passwd es
 
# 递归更改文件的拥有者
sudo chown -R es:es /data/tools/elasticsearch

#在elasticsearch文件下创建data,log文件夹

max_map_count太小,报错信息:max virtual memory areas vm.max_map_count [65530] is too low
max_map_count:允许一个进程在VMAs(虚拟内存区域)拥有最大数量

sudo vim /etc/sysctl.conf
  
#增加以下内容:
vm.max_map_count=655360
  
#保存退出vim后使sysctl.conf生效:
sysctl -p

最大文件数、最大进程数、 最大锁定内存地址空间,报错信息:
Unable to lock JVM Memory: error=12, reason=Cannot allocate memory
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
memory locking requested for elasticsearch process but memory is not locked12345

# 修改limits.conf配置(es可以换成*)
sudo vim /etc/security/limits.conf
es soft nofile 65536
es hard nofile 65536
es soft nproc 65536
es hard nproc 65536
es soft memlock unlimited
es hard memlock unlimited

修改配置文件(单机)

vim elasticsearch.yml
 
#数据目录
path.data: /data/tools/elasticsearch/data
#日志目录
path.logs: /data/tools/elasticsearch/logs
#支持外网访问
network.host: 0.0.0.0
#支持对外端口修改,默认9200
http.port: 9200
#集群名称
cluster.name: es-cluster
#节点名称
node.name: node-one
#discovery.seed_hosts: ["host1", "host2"]
cluster.initial_master_nodes: ["node-one"]
#bootstrap.system_call_filter: false
#bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin:: "*"

vim jvm.options
添加-XX:MaxDirectMemorySize=64m
es7.6.1的版本使用的是JDK11的版本启动,如果想用本地jdk8的环境启动修改此配置

启动es

# 退出es用户,重新登录es生效
su es
cd data/tools/elasticsearch/bin
./elasticsearch
# 通过打印的配置信息察看是否启动成功,成功后退出再后台启动
./elasticsearch -d
2.kibana的安装

kibana就是一个图形 *** 作界面化客户端

#解压
tar zxvf kibana-7.6.1-linux-x86_64.tar.gz
#重命名
mv kibana-7.6.1-linux-x86_64 kibana
#修改配置文件
server.port: 5601
server.host: "10.22.50.135"
elasticsearch.hosts: ["http://10.22.50.135:9201"]
i18n.locale: "zh-CN"
#后台启动 也不允许root启动
nohup ./kibana &

浏览器访问:http://10.22.50.135:5601/app/kibana

3.IK分词器的安装

IK分词器就是在一定程度上可以对中文进行拆分
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.1

#在es的安装目录下plugins建立一个目录叫做ik
然后解压 并放在ik目录下
重启es

验证:
在控制台输入

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "中华人民共和国"
}

POST _analyze
{
  "analyzer": "standard",
  "text": "中华人民共和国"
}

可以得到如下的结果

4.指定IK分词器作为默认分词器

el的默认分词器采用的standard,在中文分词会略显尴尬。

PUT /school_index
{
  "settings": {
    "index":{
      "analysis.analyzer.default.type":"ik_max_word"
    }
  }
}

以上 *** 作就是将school_index就采用默认ik分词器的ik_max_word


ElasticSearch当中Post和Put的区别

更新:PUT会将新的json值完全替换掉旧的;而POST方式只会更新相同字段的值,其他数据不会改变,新提交的字段若不存在则增加。PUT和DELETE *** 作是幂等的。所谓幂等是指不管进行多少次 *** 作,结果都一样。比如用PUT修改一篇文章,然后在做同样的 *** 作,每次 *** 作后的结果并没有什么不同,DELETE也是一样。POST *** 作不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建了若干的资源。创建 *** 作可以使用POST,也可以使用PUT,区别就在于POST是作用在一个集合资源(/articles)之上的,而PUT *** 作是作用在一个具体资源之上的(/articles/123)。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715352.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存