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": {}
    }
}
'
展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java