学习,从百度开始。 以下是Elasticsearch百度百科的介绍,如果已经了解,可以跳过。 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。 Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。 Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。 Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。 在安装Elasticsearch引擎之前,必须安装所需要的软件环境,安装Java JDK和配置JAVA_HOME环境变量,Elasticsearch5.0以上版本需要安装jdk1.8,其他版本安装jdk1.7即可。 访问官网的下载地址:https://www.elastic.co/downloads/elasticsearch,windows版的下载ZIP格式。 如果不想下载最新版,可以点击“past releases”选择过去的版本。我用的是7.6.1 下载好之后解压,解压之后会出现 进入到bin目录,双击 打开浏览器,输入 https://localhost:9200 ,显式以下画面,说明ES安装成功。 配置文件在安装目录下的 我的 注意path.data和path.logs路径要配置正确。 常用的配置项如下: 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 设置为true可以锁住ES使用的内存,避免内存与swap分区交换数据。 network.host: 设置绑定主机的ip地址,设置为0.0.0.0表示绑定任何ip,允许外网访问,生产环境建议设置为具体 的ip。 http.port: 9200 设置对外服务的http端口,默认为9200。 transport.tcp.port: 9300 集群结点之间通信端口 node.master: 指定该节点是否有资格被选举成为master结点,默认是true,如果原来的master宕机会重新选举新 的master。 node.data: 指定该节点是否存储索引数据,默认为true。 Elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等,比较好用。 下载地址:elasticsearch-head,点击clone or download按钮,点击download zip进行下载。下载完毕后解压到任意路径上,别放在elasticsearch安装路径上。 下载地址:node.js 运行head需要借助grunt命令,因此需要安装grunt。 打开cmd,输入命令 cd D:Nodejs(你安装nodejs的路径) 进入Nodejs的根目录下。 输入 输入命令 安装完成之后运行命令 用head访问elasticsearch浏览器访问https://localhost:9100 ; 进去之后点击连接,如果没反应可能是跨域问题, 打开 至此,准备工作基本做完了。 ES 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。所以,ES 数据管理的顶层单位就叫做 Index(索引)。 ES的索引库是一个逻辑概念,它包括了分词列表及文档列表,同一个索引库中存储了相同类型的文档。 6.0之前的版本有type(类型)概念,type相当于关系数据库的表,ES官方将在ES7.0版本中彻底删除type。去掉了它就相当于 MySQL中的表。 1)、可以直接可视化界面创建 2)、发送put请求进行创建 这里使用的是postman工具 PUT请求:https://localhost:9200/索引库名称 在Body中添加: number_of_shards: 设置分片的数量,在集群中通常设置多个分片,表示一个索引库将拆分成多片分别存储不同 的结点,提高了ES的处理能力和高可用性,因为使用单机环境,这里设置为1。 number_of_replicas: 设置副本的数量,设置副本是为了提高ES的高可靠性,单机环境设置为0. 副本分片的主要目的是为了故障转移。 (1)故障转移/集群恢复 (2)通过副本进行负载均衡 所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤,这种行为叫做映射(mapping)。一般由用户自己定义规则。 在索引中每个文档都包括了一个或多个字段,创建映射就是向索引库中创建字段的过程。 创建: POST请求 : https://localhost:9200/索引库名称/_mapping 此处演示创建类型为qxx_store的映射,共包括三个字段:name、details、code type后面的text表示支持分词,全文检索,支持模糊、精确查询,不支持聚合,排序操作; keyword表示不进行分词,直接索引,支持模糊、支持精确匹配,支持聚合、排序操作。 存储在ES中的一条数据即是一个文档,类似数据库的一行数据。ES会索引每个文档的内容,以便搜索。 它使用的JSON格式。即我们将数据存储到ES中,实际上是将JSON格式的字符串发给了ES。 创建: POST/PUT请求:put 或Post https://localhost:9200/索引库名/_doc/id id可以不指定,如果不指定ES会自动生成id值 根据id来查询: 发送GET请求:https://localhost:9200/索引库名/_doc/1 查询名字包含引擎的记录: 响应: took:耗费了几毫秒。 timed_out:是否超时。 _shards:数据拆成几个分片,对于搜索请求,会打到所有的主分片(primary shard)或者是它的某个副本分片(replica shard)也可以。 hits:查询的所有结果 hits里面的 total:查询结果的数量(多少个 document) max_score:score的含义就是document对于一个search的相关度的匹配分数,越相关、就越匹配,分数也越高; hits.hits(hits里面包含了hits):匹配度较高的前 N 个文档 _index:该文档所属的index _type:该文档所属的type _id:该文档的id _source:具体的内容,即存储的json串 下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases 你需要根据你对ES的版本来下载对应版本的IK,这里我使用的是7.6.1的版本,所以就下载7.6.1的zip文件。 解压 –> 将文件复制到es的安装目录下的plugin/ik即可。 重启ElasticSearch。 测试: 发送GET请求: “analyzer”: 1、ik_max_word:会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。 2、ik_smart:会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。 到此ElasticSearch的简单入门例子就结束了。
ElasticSearch
概述:
下载安装
1、安装ElasticSearch
elasticsearch-7.6.1
文件夹elasticsearch.bat
,该脚本文件执行 ElasticSearch 安装程序,稍等片刻。配置文件:
config
文件夹中elasticsearch.yml : 用于配置Elasticsearch运行参数 jvm.options : 用于配置Elasticsearch JVM设置 log4j2.properties: 用于配置Elasticsearch日志
elasticsearch.yml
配置如下:cluster.name: qixx node.name: qxx_node_01 network.host: 0.0.0.0 http.port: 9200 transport.tcp.port: 9300 node.master: true node.data: true discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"] discovery.zen.minimum_master_nodes: 1 node.ingest: true bootstrap.memory_lock: false node.max_local_storage_nodes: 2 http.cors.enabled: true http.cors.allow-origin: "*" path.data: D:ElasticSearchelasticsearch-7.6.1data path.logs: D:ElasticSearchelasticsearch-7.6.1logs
discovery.zen.ping.unicast.hosts: [“host1:port”, “host2:port”, “…”] 设置集群中master节点的初始列表。
discovery.zen.ping.timeout: 3s 设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些。 discovery.zen.minimum_master_nodes: 主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这 里要设置为2。
node.max_local_storage_nodes: 单机允许的最大存储结点数,通常单机启动一个结点建议设置为1,开发环境如果单机启动多个节点可设置大于1.安装ElasticSearch-Head插件
安装Node.js
安装grunt
npm install -g grunt -cli
进行安装grunt。安装pathomjs
cd D:head
(你安装head的路径) 进入head的根目录下,然后执行命令:npm install
进行安装pathomjs
。grunt server
,启动head服务(默认端口号是9100)。D:ElasticSearchelasticsearch-7.6.1configelasticsearch.yml
在末尾加上下面两句#开启cors跨域访问支持 http.cors.enabled: true #跨域访问允许的域名地址,(允许所有域名)以上使 用正则 http.cors.allow-origin: /.*/ http.cors.allow-origin: "*"
创建索引库
{ "settings":{ "index":{ "number_of_shards":1, "number_of_replicas":0 } } }
如果持有主分片的节点挂了,一个副本分片就会晋升为主分片 在索引写入时,副本分片做着与主分片相同的工作。新文档首先被索引进主分片然后再同步到其它所有的副本分片。增加副本数并不会增加索引容量。
搜索性能取决于最慢的节点的响应时间,所以尝试均衡所有节点的负载是一个好想法。 如果我们只是增加一个节点而不是两个,最终我们会有两个节点各持有一个分片,而另一个持有两个分片做着两倍的工作。创建映射
{ "properties": { "name": { "type": "text" }, "details": { "type": "text" }, "code": { "type": "keyword" } } }
创建文档
{ "name": "ES搜索引擎", "details": "Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)", "code": "2020" }
搜索文档
{ "query": { "match": { "name": "引擎" } } }
ik分词器
到这步就已经完成了,不需要去elasticSearch.yml中配置。https://localhost:9200/_analyze
{"text":"分词器测试例子:ElaaticSearch","analyzer":"ik_max_word" }
响应:
更多内容详情参照官方文档:https://www.elastic.co/guide/index.html
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算