• Elasticsearch入门(一)


    简介

    ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例。像Solr4一样,是基于Lucene构建的。支持时间时间索引和全文检索。官网:http://www.elasticsearch.org

    它对外提供一系列基于java和http的api,用于索引、检索、修改大多数配置。

    学完这篇教程,你就掌握了它的基本操作——启动、运行。


    安装ElasticSearch

    笔者将以Mac电脑,已安装Java环境开始演示。
    下载来自http://www.elasticsearch.org/download/ 的ElasticSearch。
    解压缩后,进入到目录,运行

    ./elasticsearch

    这将在本机启动一个ElasticSearch节点

    [INFO ][o.e.n.Node               ] [] initializing ...
    ...
    [INFO ][o.e.n.Node               ] initialized
    ...
    [INFO ][o.e.h.n.Netty4HttpServerTransport] [iJxoy-Y] publish_address {127.0.0.1:9200}, bound_addresses {[fe80::1]:9200}, {[::1]:9200}, {127.0.0.1:9200}
    [INFO ][o.e.n.Node               ] [iJxoy-Y] started
    [INFO ][o.e.g.GatewayService     ] [iJxoy-Y] recovered [0] indices into cluster_state
    

    现在在浏览器里测试一下

     
     
    • Name:我们Elasticsearch实例的名字。在默认情况下,它将从一个巨长的名字列表中随机选择一个。
    • Version:这个对象有一个number字段,代表了当前运行的Elasticsearch版本号,和一个Snapshot_build字段,代表了你当前运行的版本是否是从源代码构建而来。
    • Tagline:包含了Elasticsearch的第一个tagline: "You Know, for Search."

    安装ElasticSearch Head插件

    现在让我们从http://mobz.github.io/elasticsearch-head/ 安装ElasticSearch Head插件
    下载安装包:

    git clone git://github.com/mobz/elasticsearch-head.git

    安装node、npm、grunt

    node下载地址 nodejs.org/

    $ node -v
    v6.8.1

    npm下载地址 https://www.npmjs.com

    $ npm -v
    3.10.8

    使用npm安装grunt:

    npm install –g grunt–cli

    npm 安装依赖:

    到elasticsearch-head-master目录下,运行命令:

    npm install

    如果速度较慢或者安装失败,可以使用国内镜像:

    npm install -g cnpm --registry=https://registry.npm.taobao.org

    修改Elasticsearch配置文件

    编辑elasticsearch/config/elasticsearch.yml,加入以下内容:

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    重启ES服务:

    ps -ef | grep elasticsearch

    找到对应es的进程kill掉,然后重新运行

    ./elasticsearch

    修改Gruntfile.js

    打开elasticsearch-head-master/Gruntfile.js,找到下面connect属性,新增hostname: ‘0.0.0.0’:

    connect: {
            server: {
                options: {
                    hostname: '0.0.0.0',
                    port: 9100,
                    base: '.',
                    keepalive: true
                }
            }
        }   
    

    启动elasticsearch-head

    在elasticsearch-head-master/目录下,运行启动命令:

    grunt server

     
     

    后台启动grunt server命令;

    nohup grunt server &exit

    如果想关闭head插件,使用linux查找进程命令:

    ps aux | grep head

    结束进程:

    kill 进程号

    部署应用

    我们将要部署一个非常简单的应用:在一个部门里的雇员。
    输入:

    curl -XPUT 'http://localhost:9200/dept/employee/1?pretty’ -d '{ "empname": "emp1”}’

    dept是一个索引并且索引类型是雇员,此时我们正在输入这个索引类型的第1个id。

    你应该能在终端看到这样的信息:

    {
      "_index" : "dept",
      "_type" : "employee",
      "_id" : "1",
      "_version" : 1,
      "result" : "created",
      "_shards" : {
        "total" : 2,
        "successful" : 1,
        "failed" : 0
      },
      "created" : true
    }
    

    和上面的命令一样--让我们输入更多的记录:

    curl -XPUT 'http://localhost:9200/dept/employee/2’ -d '{ "empname": "emp2”}’
    curl -XPUT 'http://localhost:9200/dept/employee/3’ -d '{ "empname": "emp3”}’
    ...
    ...
    curl -XPUT 'http://localhost:9200/dept/employee/6’ -d '{ "empname": "emp6”}’

    注意:你要记得增加索引计数器和大括号里empname的值。

    一旦这些工作都完成了,你为ElasticSearch输入了足够多的数据,你就可以开始使用head插件搜索你的数据了。

    访问9100端口:

     
     

    这里是有关簇使用情况和不同索引信息的概况。我们最近创建的索引在其中,显示为"dept"。

    现在点击基本查询选项卡
    在搜索下拉菜单中选择"dept"并点击"搜索"按钮,将显示所有记录:

     
     

    搜索特定条目

    让我们来搜索emp1,emp2和emp5。不断点击最右面的"+"来添加更多的搜索项,就像如图显示的那样,之后点击”搜索”。确保最左边的选项为"should",其他的选项也应该和图中的保持一致

     
     

    现在你可以继续尝试这个插件了,你可以将其用到你的搜索项目中。



    作者:山天大畜
    链接:https://www.jianshu.com/p/82266719ef17
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    http协议及工作原理
    前端中的安全问题
    JS中的splice slice concat关于字符串,数组的处理
    git stash缓存
    Node学习心得
    uni-app中的TypeError: Cannot read property 'name' of undefined
    js 中Object.keys()返回string类型的索引
    JS中sort()方法,用于排序
    JS中JSON传值
    JS encodeURI()
  • 原文地址:https://www.cnblogs.com/ExMan/p/11290413.html
Copyright © 2020-2023  润新知