• 教你用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
      }
    }
    复制代码

     

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

  • 相关阅读:
    32 道 Spring 常见面试题!万字总结!
    人工智能自学需要学什么?
    python 桌面软件开发-matplotlib画图鼠标缩放拖动
    基于matlab实现的卡尔曼滤波匀加速直线运动仿真
    Vue模板语法(下)
    内核调用用户态代码
    如何安装Wnmp并结合内网穿透实现外网访问内网Wnmp服务
    IB化学介绍及备考
    2023年10月5号
    #龙迅视频转换IC LT7911D是一款高性能Type-C/DP/EDP 转MIPI®DSI/CSI/LVDS 芯片,适用于VR/显示应用。
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/15900522.html