教你用Elastic Search:运行第一条Hello World搜索命令

本文分享自华为云社区《​​Elastic Search入门(一): 简介,安装,运行第一条Hello World搜索命令​​》,作者:黄辣鸡 。

1.1用他来做什么?

实时对数据库进行全文检索、处理同义词。从同样的数据中生成分析和聚合数据。

分布式实时文档存储、每个字段可以被索引与搜索

分布式实时搜索引擎

支持上百个节点json格式的扩展,支持PB级别的结构化非结构化数据

1.2怎么来用他?

Elas分布式实时搜索引擎ticsearchelasticsearch官网 会将所有的功能打包成为一个单独的服务,这样你可以通过程序和它提供的简单的Restful API进行通信。

1.3为什么他会被叫做弹性搜索

因为搜索结果会有一个相关性评分,并且会根数据库据这个相关性进行排序,因此这个跟传统索引失效的几种情况和解决数据库的要么匹配要么不匹配的模式数据库原理及应用不同。

1.4安装(Windows)

安装方式:参考

先安装java(安装可执行文件)``

再安装curl(解压)

最后安装elasticsearch(解压)

1.5Hello World

进入es的bin数据库查询语句目录后,运行elasticsearch的索引是什么意思bamysql数据库t文件。

重新打开cmd终端,运行:

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

获得响应:

{
"name" : "HZA191152032-C",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "ajY4l-0zTGWhcXDXcGTyMA",
"version" : {
"number" : "7.12.0",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
"build_date" : "2021-03-18T06:17:15.410153305Z",
"build_snapshot" : false,
"lucene_version" : "8.8.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

这意味json数据着一个e数据库设计s节点已经启动,并收到了第一个响应。

直接在浏览elasticsearch面试题器中输入http://localhost:9201
也能收到如上响应。

上面的curl命令后面的url应该用双引号,否则会报curl: (1) Protocol "'http"
not supported or dismysql数据库命令大全abled in libcurl
错误索引是什么意思。参考

1.6 集群

集群是一组拥有相同cluster.name的节点,支持共享数据,有可伸缩性。

可以在elasticsearch.yml配置文件中修改cluster.name,重启服务后生效。

1.7使用ES

es是由java写的工具,因此可以直接使用es内置的java客mysql安装配置教程户端调用,通过9300端口和es原生的协议mysql安装和集群交互。集群中的节点通过端口9300彼此通信。

其他语言例如js/php/python都可以通过RESTful API来数据库查询语句调用ES。

调用命令如下:

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

被 < > 标记的部件:

标记

描述

VERB

适当的 HTTP 方法 或 谓词 : GET、 POST索引失效的几种情况和解决、 PUT、 HjsonEAD 或者 DELETE。

PROTOCOL

http 或者 https(如果你在 Elasticsearch 前面有一索引符号个 https 代理)

HOST

Elasticsearchmysql面试题群中任意节点的主机名,或者用数据库查询语句 localhost 代表本地机器上的节点。

PORT

运行 Elasticsearch HTTjson是什么意思P 服务的端口号,默认是 9200 。

PATH

API 的终端路径(例如 _count 将返回集群中文档数量)。Path 可能mysql包含多个组件,例如:_cluster/stats 和 _nodes数据库/stats/jvm 。

QUERY_STRING

任意可选的查询字符串参数 (例如 ?pretty 将格式化地输出 JSON 返回值,使其更容易阅读)

BODY

一个 JSON 格式的请求体 (如果请求需要的话)

例如:

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

如果在windows下面调用会出现两个小issues,一个是像上面直接curl是会报406错误,因为es6之后有调整需要给curl请求加上-H;另一个是windows不支持单引号,因此全部使用

双引号,并且json body体里面的双elasticsearch面试题引号需要加上斜杠转义.​​参考1​​参考2

windows上面调用:

curl -H 
"Content-Type: application/json" -XGET
"http://localhost:9200/_count?pretty" -d
{\"query
\":
{\"match_all
\":
{}}}

得到响应:

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

​​点击关注mysql安装,第一时间了解华为云新鲜技术~​​