媴媴知识

Elasticsearch入门(一)

2017-07-12  本文已影响103人  山天大畜

简介

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

现在在浏览器里测试一下

安装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",其他的选项也应该和图中的保持一致

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

上一篇下一篇

猜你喜欢

热点阅读