DataBase

ElasticSearch学习(一)--ElasticSearc

2018-08-07  本文已影响21人  荆辰曦

Elasticsearch是什么?
Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索,结构化搜索,分析以及将这三者混合使用:

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进,性能最好的,功能最全的搜索引擎库。
但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTfulAPI
来隐藏Lucene的复杂性,从而让全文搜索变得简单。

理解Elasticsearch的最好方式就是去运行它,让我们开始吧!
安装Elasticsearch的唯一前提就是安装官方新版Java,至少java8,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

你可以从Elasticsearch官网下载最新版本的Elasticsearch,地址:https://www.elastic.co/downloads/elasticsearch

下载完毕后解压即可。Elasticsearch已经准备就绪,ElasticSearch配置:
(ElasticSearch的配置文件在elasticsearch下载目录下的config文件夹下)

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.80.131
#
# Set a custom port for HTTP:
#
http.port: 9200

执行以下命令可在前台启动(Windows在cmd窗口下,linux在命令行下)

 //linux
./bin/elasticsearch

//Windows
cd D:\elasticsearch-6.3.1\elasticsearch-6.3.1\bin(跳到Elasticsearch解压目录下的bin目录)
后输入
elasticsearch

如果想在后台以守护进程模式运行,添加-d参数

//linux
./bin/elasticsearch -d

//windows
elasticsearch -d

Windows运行下可能没有curl终端环境,具体安装步骤见:https://www.cnblogs.com/xing901022/p/4652624.html

打开终端进行Elasticsearch环境测试

curl  "http://localhost:9200/pretty"

你能看到以下返回信息:

{
"status": 200,
"name": "Shrunken Bones",
"version": {
"number": "1.4.0",
"lucene_version": "4.10"
},
"taglineKnow, fh  


}

}   

 

这说明你的ELasticsearch集群已经启动并且正常运行,接下来我们可以开始各种实验了。

一些关于Elasticsearch的基本概念

集群和节点

节点(node)是一个运行着的Elasticsearch实例。集群(cluster)是一组具有相同 cluster.name 的节点集合,他们协同工作,共享数据并提供故障转移和扩展功能,当然一个节点也可以组成一个集群。

索引,类型,文档,字段

在Elasticsearch中,文档归属于一种类型(Type),而这些类型存在于索引(名词index)中;Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。,可以画一张简单的对比图来类比传统关系型数据库:

关系型数据库->  Databases->Tables-> Rows  ->Columns
Elasticsearch-> Indexes ->Types ->Documents->Fields
索引的区分

Elasticsearch的交互

基于HTTP协议,以JSON为数据交互格式的RESTful API

其他所有程序语言都可以使用RESTful API,通过9200端口的与Elasticsearch进行通信,你可以使用你喜欢的WEB客户端,事实上,如你所见,你甚至可以通过 curl 命令与Elasticsearch通信。

向Elasticsearch发出的请求的组成部分与其它普通的HTTP请求是一样的:

curl -X<VERB> '<PROTOCOL>://<HOST>/<PATH>?<QUERY_STRING>' -d '<BODY>'

例如:

curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
    "query": {
   "match_all": {}
    

返回结果如下:

{
"count" : 0,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
}
}

想要看到http请求可以在curl命令后跟 - i 参数

curl -i -XGET 'localhost:9200/'
上一篇 下一篇

猜你喜欢

热点阅读