elastic search入门

这篇具有很好参考价值的文章主要介绍了elastic search入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考1:Elastic Search 入门 - 知乎

参考2:Ubuntu上安装ElasticSearch_ubuntu elasticsearch-CSDN博客

1、ElasticSearch安装

1.1安装JDK,省略,之前已安装过

elastic search入门,系统Ubuntu,运维

1.2创建ES用户

创建用户:sudo useradd esuser
设置密码:sudo passwd esuser

elastic search入门,系统Ubuntu,运维

1.3 下载ElasticSearch安装包

Ubuntu上下载:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.11.1-linux-x86_64.tar.gz

然后解压:

tar -xvzf elasticsearch-7.11.1-linux-x86_64.tar.gz

1.4配置

配置jvm.options

vi config/jvm.options

elastic search入门,系统Ubuntu,运维

配置elasticsearch.yml:

node.name: node-1            #配置当前es节点名称(默认是被注释的,并且默认有一个节点名)
cluster.name: my-application #默认是被注释的,并且默认有一个集群名
path.data: /home/lighthouse/es/data     # 数据目录位置
path.logs: /home/lighthouse/es/logs     # 日志目录位置
network.host: 0.0.0.0        #绑定的ip:默认只允许本机访问,修改为0.0.0.0后则可以远程访问cluster.initial_master_nodes: ["node-1", "node-2"] #默认是被注释的 设置master节点列表 用逗号分隔

根据以上设置的path.data和path.logs内容,需要在/home/lighthouse/目录下创建es目录,以及在es目录下创建文件data和logs。

elastic search入门,系统Ubuntu,运维

 ElasticSearch的配置信息:

属性名    说明
cluster.name    配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。
node.name    节点名,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
path.conf    设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch
path.data    设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开
path.logs    设置日志文件的存储路径,默认是es根目录下的logs文件夹
path.plugins    设置插件的存放路径,默认是es根目录下的plugins文件夹
bootstrap.memory_lock    设置为true可以锁住ES使用的内存,避免内存进行swap
network.host    设置bind_host和publish_host,设置为0.0.0.0允许外网访问
http.port    设置对外服务的http端口,默认为9200。
transport.tcp.port    集群结点之间通信端口
discovery.zen.ping.timeout    设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些
discovery.zen.minimum_master_nodes    主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2
 

1.5 修改/etc/security/limits.conf文件 增加配置

sudo vi /etc/security/limits.conf

在文件最后,增加如下配置:

* soft nofile 65536
* hard nofile 65536

在/etc/sysctl.conf文件最后添加一行 vm.max_map_count=655360 添加完毕之后,执行命令: sysctl -p

vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p

elastic search入门,系统Ubuntu,运维

1.6启动ElasticSearch

启动前先给esuser用户权限,然后把用户切换到esuser用户

sudo chgrp -R lighthouse ./es
sudo chown -R lighthouse ./es
sudo chmod 777 es
su esuser

 elastic search入门,系统Ubuntu,运维

 elastic search入门,系统Ubuntu,运维

启动ElasticSearch

./bin/elasticsearch

 elastic search入门,系统Ubuntu,运维

然后参考资料修改了bin/elasticsearch-env文件,让es使用es目录里的jdk,

elastic search入门,系统Ubuntu,运维 重新启动,报错如下:

ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /home/lighthouse/es/logs/my-application.log

 把该释放的内存(可以使用free -h查看)都释放出来后,重新启动,成功了。

elastic search入门,系统Ubuntu,运维

可以看到绑定了两个端口:

  • 9300:集群节点间通讯接口

  • 9200:客户端访问接口

访问http://43.138.0.199:9200/在客户端可以看到以下信息:

elastic search入门,系统Ubuntu,运维

2、学习es,索引的维护

2.1创建索引

http://43.138.0.199:9200/student

PUT

elastic search入门,系统Ubuntu,运维

2.2、获得索引信息

http://43.138.0.199:9200/student

GET

elastic search入门,系统Ubuntu,运维

 2.3删除索引

http://43.138.0.199:9200/city

DELETE

elastic search入门,系统Ubuntu,运维

3、为索引添加数据

增删改查

RESTful接口URL的格式:

http://localhost:9200/<index>/<type>/[<id>]

3.1、学生索引中添加小学学生类型的数据

 http://43.138.0.199:9200/student/xiaoxue/1

Post方式

Body如下:

{

    "name":"张三",

    "age":7

}

elastic search入门,系统Ubuntu,运维

3.2、查看单个学生数据

 http://43.138.0.199:9200/student/xiaoxue/1

GET

elastic search入门,系统Ubuntu,运维

3.3、修改学生信息

http://43.138.0.199:9200/student/xiaoxue/1

put

{

    "name": "张三",

    "age": 9

}

elastic search入门,系统Ubuntu,运维

再次查看该学生信息,截图如下:

elastic search入门,系统Ubuntu,运维

3.4查询所有学生列表

再添加一个学生,可以验证列表中的多个结果。

elastic search入门,系统Ubuntu,运维

然后,调用查询接口:

get接口

http://43.138.0.199:9200/student/_search

elastic search入门,系统Ubuntu,运维

继续验证分页查询

GET方式,from表示从哪个数据开始读取(第一个数据就是0,以此类推),size表示读取多少个数据。

http://43.138.0.199:9200/student/_search?from=0&size=2

elastic search入门,系统Ubuntu,运维

然后查询第2页的数据,from要改成2,如下所示:

GET

http://43.138.0.199:9200/student/_search?from=2&size=2

elastic search入门,系统Ubuntu,运维

继续验证查询条件:

GET

http://43.138.0.199:9200/student/_search?from=0&size=2

body如下:

{

  "query": {

    "match": {

      "name": "张三"

    }

  }

}

结果如下:

elastic search入门,系统Ubuntu,运维

有关查询条件的说明如下:

elastic search入门,系统Ubuntu,运维

 有关查询结果的说明如下:

elastic search入门,系统Ubuntu,运维

4、在ES中执行SQL查询ES数据

POST

http://43.138.0.199:9200/_sql?format=txt

Body如下:

{

  "query": "SELECT name,age FROM student order by name desc limit 6"

}

执行结果如下:

elastic search入门,系统Ubuntu,运维

参数format的取值说明如下:

format Axxept HTTP Header 说明
csv text/csv 逗号分隔
json application/json JSON格式
tsv text/tab-separated-values tab分隔
txt text/pain 文本格式
yaml application/yaml yaml格式
vbor application/vbor 简洁的二进制
smile application/smile 类似cbor的二进制

返回json格式的数据,验证如下:

elastic search入门,系统Ubuntu,运维 返回数据如下:

{
	"columns": [
		{
			"name": "name",
			"type": "text"
		},
		{
			"name": "age",
			"type": "long"
		}
	],
	"rows": [
		[
			"李四",
			8
		],
		[
			"张三",
			9
		],
		[
			"66",
			7
		],
		[
			"44",
			7
		],
		[
			"44",
			7
		],
		[
			"33",
			7
		]
	]
}

5、根据SQL生成DSL语句

POST

http://43.138.0.199:9200/_sql/translate

Body如下:

{

  "query": "SELECT name,age FROM student order by name desc limit 6"

}

执行结果如下:

elastic search入门,系统Ubuntu,运维

{
	"size": 6,
	"_source": {
		"includes": [
			"name",
			"age"
		],
		"excludes": []
	},
	"sort": [
		{
			"name.keyword": {
				"order": "desc",
				"missing": "_first",
				"unmapped_type": "keyword"
			}
		}
	]
}

拿来查询数据

elastic search入门,系统Ubuntu,运维

 可见,可以拿来查询数据。

6、安装分词插件以及使用

在查看安装了的插件列表时,突然报需要java11,然后我安装了java11,并配置了环境变量。

参考:ubuntu安装JDK11-CSDN博客

Elasticsearch提供插件机制对系统进行扩展
以安装analysis-icu这个分词插件为例

在线安装:

#查看已安装插件
bin/elasticsearch-plugin list
#安装插件
bin/elasticsearch-plugin install analysis-icu
#删除插件
bin/elasticsearch-plugin remove analysis-icu

注意:安装和删除完插件后,需要重启ES服务才能生效。
测试分词效果

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

执行结果要贴下:

http://43.138.0.199:9200/_analyze

Post

body如下:

{

    "analyzer":"icu_analyzer",

    "text":"中华人民共和国"

}

结果如下:

elastic search入门,系统Ubuntu,运维

{
	"tokens": [
		{
			"token": "中华",
			"start_offset": 0,
			"end_offset": 2,
			"type": "<IDEOGRAPHIC>",
			"position": 0
		},
		{
			"token": "人民",
			"start_offset": 2,
			"end_offset": 4,
			"type": "<IDEOGRAPHIC>",
			"position": 1
		},
		{
			"token": "共和国",
			"start_offset": 4,
			"end_offset": 7,
			"type": "<IDEOGRAPHIC>",
			"position": 2
		}
	]
}

测试分词效果

#ES的默认分词设置是standard,会单字拆分
POST _analyze
{
    "analyzer":"standard",
    "text":"中华人民共和国"
}

#ik_smart:会做最粗粒度的拆
POST _analyze
{
    "analyzer": "ik_smart",
    "text": "中华人民共和国"
 }

#ik_max_word:会将文本做最细粒度的拆分
POST _analyze
{
    "analyzer":"ik_max_word",
    "text":"中华人民共和国"
}

执行结果要贴下:

elastic search入门,系统Ubuntu,运维

elastic search入门,系统Ubuntu,运维

elastic search入门,系统Ubuntu,运维

创建索引时可以指定IK分词器作为默认分词器

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

elastic search入门,系统Ubuntu,运维

执行结果要贴下:

elastic search入门,系统Ubuntu,运维文章来源地址https://www.toymoban.com/news/detail-817249.html

到了这里,关于elastic search入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elastic Search 命令详解-索引操作

    关于Elastic Search安装可以参考《Elastic Search 8.6.2集群安装部署》及Kibana安装可以参考《Elastic Search 8.6.2简单操作》。相关命令将在Kibana工具的Console平台上执行。 Elastic Search索引操作主要包含:创建、删除、关闭和打开索引,以及索引别名的操作。其中,索引别名的操作在生产环

    2024年02月08日
    浏览(32)
  • 【搜索引擎】elastic search核心概念

    前言 本文不涉及ES的具体安装下载、操作、集群的内容,这部分内容会放在后面一篇文章中。本文只包含ES的核心理论,看完本文再去学ES的细节会事半功倍。 目录 1.由日志存储引出的问题 2.什么是ES? 3.ES的数据结构 4.ES的核心原理 5.联系作者 本文或者说本系列的来源: 前面

    2024年02月03日
    浏览(37)
  • Springboot项目使用Elastic Search教程(完整步骤)

    最近的项目需要用到Elastic Search,上网查资料的时候发现内容比较分散,搜索起来的时候比较费力, 于是最近入门配置成功之后,稍微总结一下吧。 先给出一些网上的教程 (152条消息) Spring Boot整合Elasticsearch,最新最全教程_spring elasticsearch_Cloud-Future的博客-CSDN博客 这一篇代码

    2024年02月07日
    浏览(35)
  • 关于laravel使用Elastic Search的一些记录

    1. 准备工作 因为我本地php版本是7.3.4,不支持太高的es。 所以使用如下环境: laravel6 + php7.3.4 + elastic search 7.17.2 2. 本地安装elastic search 注意事项: 如果是8以上版本,初次启动时会生成密码。安装成功以后,访问 https://localhost:9200/ ,会提示输入密码。用户名为elastic,密码就是

    2024年02月11日
    浏览(38)
  • elastic search es 分组统计 aggs 次数用法

    参考链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html es 各个版本的语法可能会不一样,如果大家在用的时候发现语法报错了,请查阅相关版本的语法。 刚需要按 ip 地址统计某个接口的访问次数,查了下 es 分组统计次数 aggs 的用法,特此记录一下,方

    2024年02月11日
    浏览(44)
  • Elastic Search 根据匹配分和热度分排序

    匹配分、热度分归一化 排序:匹配分 * 0.8 + 热度分 * 0.2

    2024年02月16日
    浏览(36)
  • DEB方式安装elastic search7以及使用

    参考:https://www.cnblogs.com/anech/p/15957607.html 1、安装elastic search7 #手动下载安装 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-amd64.deb.sha512 shasum -a 512 -c elasticsearch-7.17.1-amd64.deb.sha512  sudo dpkg -i elas

    2024年01月23日
    浏览(37)
  • 使用docker安装elastic search[ES]和kibana

    使用docker安装elastic search和kibana,版本均为7.17.1 docker pull# 去dockerhub看具体版本,这里用7.17.1 临时安装生成文件# 参数说明 -d 后台启动 –name 起别名即:NAMES -p 9200:9200 将端口映射出来 elasticsearch的9200端口是供外部访问使用;9300端口是供内部访问使用集群间通讯 -e “discovery.

    2024年02月14日
    浏览(29)
  • 关于PHP 使用 Elastic Search8的相关经历

    你好! 如果你也是第一次使用ES8和PHP对接使用,这里或许有一些心得可以为你解决一些问题。 windows 版本搭建 Elastic Search 如下图,通过官网下载一个windows版本的Elastic Search 执行.bat文件即可启动 https://localhost:9200 默认的是ssl证书 ES8登录是需要账户密码的,windows启动ES8以后,

    2024年02月15日
    浏览(32)
  • Centos 7 通过 targz 文件安装 Elastic Search 服务

    区别于通过发行版自带的仓库, 介绍如何通过 targz 文件安装 Elastic Search 服务, 使用的 Linux 为 Centos 7 https://www.elastic.co/downloads/elasticsearch 选择 Linux x86_64, 下载 elasticsearch-8.8.0-linux-x86_64.tar.gz 解压到 /opt/elasticsearch, 并加上软链 这个版本的 Elastic Search 自带 JVM, 版本为 openjdk version

    2024年02月08日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包