当前全文搜索需求日益增长,ElasticSearch
作为一款开源的全文检索引擎,是当前许多大公司如WikiPedia
、Github
、Stack Overflow
等的首选,它能够对数据进行快速存储、搜索和分析。其底层则是开源库Lucene
,这也是方便我们的地方,只需要调用API
接口,就能够实现开箱即用。
ElasticSearch
依赖于Java
环境,所以在开始下载安装前,请确保你的机器上已经安装并配置好了JDK
;Windows
,所以下载压缩版即可,下载链接[1];./elasticsearch/bin
目录下,用控制台运行如下命令,启动ElasticSearch
;./elasticsearch.bat
ElasticSearch
默认开启9200
端口,所以此时在浏览器访问localhost:9200
即可获取相关信息;Ctrl + C
终止elasticsearch.bat
的运行即可;ElastaicSearch
只能在本机访问,若要进行远程访问操作,则需要将 ./elasticsearch/config/elasticsearch.yml
文件中的network:host
注释去掉,修改它的值为0.0.0.0
,然后重新运行elaticsearch.bat
脚本即可远程访问;network.host: 0.0.0.0
Node
)与集群(Cluster
)
ElasticSearch
本质上来说是一个分布式的数据库,能够为多台服务器提供服务,每台服务器可以运行多个ElasticSearch
实例;而 一个实例 叫做 一个节点 ,而 一组节点 就组成了 一个集群;Index
)
要进行检索,就会有索引。ElasticSearch
会对所有字段进行索引,然后经过一系列处理后写入一个 反向索引(Inverted Index
) 。当我们进行检索时,就会直接访问该索引。因此,ElasticSearch
数据管理的顶层单位 叫做 索引 。注意 :每个索引(即数据库)的命名必须小写;Document
)
索引中每条记录叫做 文档 ,多个文档则构成了一个 索引 ,每个文档都是使用 JSON 格式表示。虽然 同一个索引中的文档不强制要求结构相同 ,但为了确保检索效率,最好保持相同;Type
)
文档也可以进行分组,是 一种虚拟的逻辑分组,用于过滤文档 。不同分组应该有类似结构,即一个字段不能在这个组属于int
类型,但在另一个组中却属于String
类型。[1]
下载链接: https://www.elastic.co/cn/downloads/elasticsearch