教你用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
}
}
教你用Elastic Search:运行第一条Hello World搜索命令的更多相关文章
- Elastic Search 小调研
一.概况: Elastic Search 是一个基于Apache Lucene™工具包的开源搜索引擎.无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库 ...
- Solutions:如何运用Elastic App Search快速建立出色的React搜索体验
建立搜索体验是一项艰苦的工作. 乍一看似乎很容易:建立一个搜索栏,将数据放入数据库,然后让用户输入对该数据库的查询. 但是,在数据建模,底层逻辑以及(当然)总体设计和用户体验方面,有很多事情要考虑. ...
- 分库分表后跨分片查询与Elastic Search
携程酒店订单Elastic Search实战:http://www.lvesu.com/blog/main/cms-610.html 为什么分库分表后不建议跨分片查询:https://www.jian ...
- Activity工作流(2)-入门安装运行第一个例子
转: Activity工作流(2)-入门安装运行第一个例子 置顶 2017年05月24日 15:58:50 li_ch_ch 阅读数:24432 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- elastic search使用
elastic使用 使用python时注意保持一个好习惯:不要使用类似str.type这样的变量名,很容易引发错误: https://blog.csdn.net/lifelegendc/article ...
- SQL数据同步到ELK(二)- Elastic Search 安装
开篇废话 没错,前面扯了一堆SQL SERVER,其实我连Elastic Search根本没动手玩过(是不是与时代有点脱节了?),那今天我就准备尝试安装一个ELK的简单集群出来(这个集群是使用我的小米 ...
- Elastic search集群新增节点(同一个集群,同一台物理机,基于ES 7.4)
一开始,在电脑上同一个集群新增节点(node)怎么试也不成功,官网guide又语焉不详?集群健康值yellow(表示主分片全部可用,部分复制分片不可用) 最后,在stackoverflow上找到了答案 ...
- Elastic Search快速上手(2):将数据存入ES
前言 在上手使用前,需要先了解一些基本的概念. 推荐 可以到 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.htm ...
- ansible基础☞第一条命令
我的两个测试机: 系统: ubuntu 16.04.2 ansible-master: 192.168.0.107 ansible-slave: 192.168.0.108 ansible版本: ro ...
随机推荐
- Pycharm_关闭PEP8函数名不能包含大写字母的规范
屏蔽PEP8告警 全是小写字母,可能与以往的习惯不大一样,将这样的警告忽略的方法如下: File →Settings→Editor→Inspections→Python→PEP 8 naming co ...
- Selenium_单选框和复选框的选中状态判定以及元素是否可用和可见判定(10)
简单写个单选框和复选框界面 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /&g ...
- mysql数据库存放的路径以及安装路径
mysql数据库存放的路径以及安装路径 1.查看mysql的存放路径 1.查看数据库的存放路径 进入mysql终端 mysql>show variables like '%datadir%'; ...
- 通过脚本升级PowerShell
Update Powershell through command line https://superuser.com/questions/1287032/update-powershell-thr ...
- Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- 【刷题-PAT】A1111 Online Map (30 分)
1111 Online Map (30 分) Input our current position and a destination, an online map can recommend sev ...
- cv::copyMakeBorder()中用0值对齐矩阵,方便后续加速傅里叶变换
int M = cv::getOptimalDFTSize(mul_result.rows); // 获得最佳DFT尺寸,为2的次方 int N = cv::getOptimalDFTSize(mul ...
- seq2seq+torch7聊天机器人bug处理
[C]: in function 'error' ...root1/torch/install/share/lua/5.2/rnn/recursiveUtils.lua:44: in function ...
- Java 面试题史上最强整理
https://mp.weixin.qq.com/s/kJpRgfI3zT77XqMeRfmmQQ
- eclipse不能创建web项目,如何设置(亲测可用)
具体描述:就是在项目右键或者file-->new的时候没有dynamic web project选项)(我这里已经解决.所以看得到) 根本原因:就是有没有web的开发插件 两种办法 1.下载使用 ...