教你用Elastic Search:运行第一条Hello World搜索命令
摘要:Elastic Search可实时对数据库进行全文检索、处理同义词。从同样的数据中生成分析和聚合数据。
本文分享自华为云社区《Elastic Search入门(一): 简介,安装,运行第一条Hello World搜索命令》,作者:黄辣鸡 。
用他来做什么?
实时对数据库进行全文检索、处理同义词。从同样的数据中生成分析和聚合数据。
- 分布式实时文档存储、每个字段可以被索引与搜索
- 分布式实时搜索引擎
- 支持上百个节点的扩展,支持PB级别的结构化非结构化数据
怎么来用他?
Elasticsearch 会将所有的功能打包成为一个单独的服务,这样你可以通过程序和它提供的简单的Restful API进行通信。
为什么他会被叫做弹性搜索
因为搜索结果会有一个相关性评分,并且会根据这个相关性进行排序,因此这个跟传统数据库的要么匹配要么不匹配的模式不同。
安装(Windows)
安装方式:参考
- 先安装java(安装可执行文件)``
- 再安装curl(解压)
- 最后安装elasticsearch(解压)
Hello World
进入es的bin目录后,运行elasticsearch的bat文件。
重新打开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" }
这意味着一个es节点已经启动,并收到了第一个响应。
直接在浏览器中输入http://localhost:9201 也能收到如上响应。
上面的curl命令后面的url应该用双引号,否则会报curl: (1) Protocol "'http" not supported or disabled in libcurl错误。参考
集群
集群是一组拥有相同cluster.name的节点,支持共享数据,有可伸缩性。
可以在elasticsearch.yml配置文件中修改cluster.name,重启服务后生效。
使用ES
es是由java写的工具,因此可以直接使用es内置的java客户端调用,通过9300端口和es原生的协议和集群交互。集群中的节点通过端口9300彼此通信。
其他语言例如js/php/python都可以通过RESTful API来调用ES。
调用命令如下:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
被 < > 标记的部件:
例如:
curl -XGET 'http://localhost:9200/_count?pretty' -d ' { "query": { "match_all": {} } } '
如果在windows下面调用会出现两个小issues,一个是像上面直接curl是会报406错误,因为es6之后有调整需要给curl请求加上-H;另一个是windows不支持单引号,因此全部使用
双引号,并且json body体里面的双引号需要加上斜杠转义.
参考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 } }
相关文章
- 你不知道的达梦数据库
- SQL语句练习05
- 【愚公系列】2022年12月 Elasticsearch数据库-.NET CORE的Serilog=>Rabbitmq=>Logstash=>Elasticsearch的日志传输(四)
- 【数据库原理与运用|MySQL】MySQL视图的使用
- Oracle数据库基础
- 客快物流大数据项目(七十二):Impala sql 语法
- 数据库系统原理作业(2)
- SQL语句练习06
- Mysql蜜罐反制cobalt strike
- ClickHouse 源码解析(三):SQL 的一生(下)
- MySQL中这14个小玩意,让人眼前一亮!!!
- 数据库小技能:存储过程(stored procedure)
- SQL SERVER 常用命令
- docker快速拉起任意版本PostgreSQL测试环境
- gdb操作运行中的MySQL实例--"黑科技"
- MySQL-8.0.30 版本新特性之动态调整 REDO
- MySQL - 删库了,但是很慢
- MySQL-8 新语法 nowait 与 skip locked 优化并发写入性能
- MySQL 配置文件参数检查
- 完了,MySQL 复制卡死!!!