提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录系列文章目录前言一、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,下面是简单的对比。
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 -d2.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": "中华人民共和国" }
可以得到如下的结果
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提供了大量能使我们快速便捷地处理数据的函数和方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)