教你用 Elastic Search:运行第一条 Hello World 搜索命令 原创
本文分享自华为云社区《 Elastic Search入门(一): 简介,安装,运行第一条Hello World搜索命令》,作者:黄辣鸡 。
1.1 用他来做什么?
实时对数据库进行全文检索、处理同义词。从同样的数据中生成分析和聚合数据。
· 分布式实时文档存储、每个字段可以被索引与搜索
· 分布式实时搜索引擎
· 支持上百个节点的扩展,支持 PB 级别的结构化非结构化数据
1.2 怎么来用他?
Elasticsearch 会将所有的功能打包成为一个单独的服务,这样你可以通过程序和它提供的简单的 Restful API 进行通信。
1.3 为什么他会被叫做弹性搜索
因为搜索结果会有一个相关性评分,并且会根据这个相关性进行排序,因此这个跟传统数据库的要么匹配要么不匹配的模式不同。
1.4 安装(Windows)
安装方式:参考
· 先安装 java(安装可执行文件)``
· 再安装 curl(解压)
· 最后安装 elasticsearch(解压)
1.5 Hello World
进入 es 的 bin 目录后,运行 elasticsearch 的 bat 文件。
重新打开 cmd 终端,运行:
获得响应:
这意味着一个 es 节点已经启动,并收到了第一个响应。
直接在浏览器中输入 http://localhost:9201 也能收到如上响应。
上面的 curl 命令后面的 url 应该用双引号,否则会报curl: (1) Protocol "'http"not supported or disabled in libcurl错误。参考
1.6 集群
集群是一组拥有相同cluster.name的节点,支持共享数据,有可伸缩性。
可以在 elasticsearch.yml 配置文件中修改cluster.name,重启服务后生效。
1.7 使用 ESes 是由 java 写的工具,因此可以直接使用 es 内置的 java 客户端调用,通过 9300 端口和 es 原生的协议和集群交互。集群中的节点通过端口 9300 彼此通信。
其他语言例如 js/php/python 都可以通过 RESTful API 来调用 ES。
调用命令如下:
被 < > 标记的部件:
例如:
如果在 windows 下面调用会出现两个小 issues,一个是像上面直接 curl 是会报 406 错误,因为 es6 之后有调整需要给 curl 请求加上-H;另一个是 windows 不支持单引号,因此全部使用
双引号,并且 json body 体里面的双引号需要加上斜杠转义. 参考 1 参考 2
windows 上面调用:
得到响应:
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/75f80ad8d43590a4feab7ca56】。文章转载请联系作者。
评论