1、学习Elasticsearch概述。

了解Elasticsearch是什么?能做什么?可以查一下elasticsearch、lucene等的相关介绍,另外也可以查查资料比较一下其它的搜索引擎sphinx、reds等。

2、学习Elasticsearch术语。

上面参考文章中只列了几个核心术语,其它更多的术语可以自己查找资料。

3、安装Elasticsearch并运行。

a、下载Elasticsearch: https://www.elastic.co/downloads/elasticsearch

本人下载的v5.3.0版本zip包,下载后解压到本地mac系统的/usr/local/elasticsearch目录下.

这个版本需要java1.8以上(包含)支持,这个可以在命令行用java -version查看,达不到要求的就自己升级去。

b、启动Elasticsearch,出现下面类似的界面就说明启动成功了。默认9200是http访问端口,是9300是各节点间彼此通信的端口。

>cd /usr/local/elasticsearch
>bin/elasticsearch
[2017-03-31T16:32:40,477][INFO ][o.e.n.Node ] [] initializing ...
[2017-03-31T16:32:40,571][INFO ][o.e.e.NodeEnvironment ] [iXZpFuL] using [1] data paths, mounts [[/ (/dev/disk1)]], net usable_space [57.7gb], net total_space [232.6gb], spins? [unknown], types [hfs]
[2017-03-31T16:32:40,571][INFO ][o.e.e.NodeEnvironment ] [iXZpFuL] heap size [1.9gb], compressed ordinary object pointers [true]
[2017-03-31T16:32:40,590][INFO ][o.e.n.Node ] node name [iXZpFuL] derived from node ID [iXZpFuL9TUa2_I43LJUQDg]; set [node.name] to override
[2017-03-31T16:32:40,590][INFO ][o.e.n.Node ] version[5.3.0], pid[5772], build[3adb13b/2017-03-23T03:31:50.652Z], OS[Mac OS X/10.12/x86_64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_121/25.121-b13]
[2017-03-31T16:32:41,642][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [aggs-matrix-stats]
[2017-03-31T16:32:41,642][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [ingest-common]
[2017-03-31T16:32:41,642][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [lang-expression]
[2017-03-31T16:32:41,642][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [lang-groovy]
[2017-03-31T16:32:41,643][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [lang-mustache]
[2017-03-31T16:32:41,643][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [lang-painless]
[2017-03-31T16:32:41,643][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [percolator]
[2017-03-31T16:32:41,643][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [reindex]
[2017-03-31T16:32:41,643][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [transport-netty3]
[2017-03-31T16:32:41,643][INFO ][o.e.p.PluginsService ] [iXZpFuL] loaded module [transport-netty4]
[2017-03-31T16:32:41,644][INFO ][o.e.p.PluginsService ] [iXZpFuL] no plugins loaded
[2017-03-31T16:32:43,969][INFO ][o.e.n.Node ] initialized
[2017-03-31T16:32:43,969][INFO ][o.e.n.Node ] [iXZpFuL] starting ...
[2017-03-31T16:32:44,209][INFO ][o.e.t.TransportService ] [iXZpFuL] publish_address {127.0.0.1:9300}, bound_addresses {[fe80::1]:9300}, {[::1]:9300}, {127.0.0.1:9300}
[2017-03-31T16:32:47,392][INFO ][o.e.c.s.ClusterService ] [iXZpFuL] new_master {iXZpFuL}{iXZpFuL9TUa2_I43LJUQDg}{2FmpVTkEQwKUy9eHEv26qg}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
[2017-03-31T16:32:47,412][INFO ][o.e.h.n.Netty4HttpServerTransport] [iXZpFuL] publish_address {127.0.0.1:9200}, bound_addresses {[fe80::1]:9200}, {[::1]:9200}, {127.0.0.1:9200}
[2017-03-31T16:32:47,415][INFO ][o.e.n.Node ] [iXZpFuL] started
[2017-03-31T16:32:47,553][INFO ][o.e.g.GatewayService ] [iXZpFuL] recovered [1] indices into cluster_state
[2017-03-31T16:32:47,806][INFO ][o.e.c.r.a.AllocationService] [iXZpFuL] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[library][2]] ...]).

c、在浏览器中打开http://localhost:9200/ ,将会显示一些关于你运行的实例的基本信息。

{
"name" : "iXZpFuL",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "inoWXI3_QsGfG8xG4YHOAA",
"version" : {
"number" : "5.3.0",
"build_hash" : "3adb13b",
"build_date" : "2017-03-23T03:31:50.652Z",
"build_snapshot" : false,
"lucene_version" : "6.4.1"
},
"tagline" : "You Know, for Search"
}

4、图形化用户界面。

按照文章中提供的选择,我安装了谷歌浏览器的扩展组件ElasticSearch Toolbox.界面如下。

第一个select加载可选索引,第二个select加载可选类型。因为还没有导入任何数据,暂时没得选。

其实另外一个插件也挺好,地址:https://github.com/mobz/elasticsearch-head 感兴趣的同学可以下载下来试试。

5、基于Node的elasticsearch客户端。

elasticsearch为Node.js提供一个官方模块,称为elasticsearch。可以通过这个模块编码与elasticsearch通讯。

我直接下载的示例代码运行。示例要求node版本0.11.0及以上。

>git clone https://github.com/sitepoint-editors/node-elasticsearch-tutorial.git  #下载示例
>cd node-elasticsearch-tutorial #切换目录
>npm install #安装依赖

示例中的文件解释可以看到 https://github.com/sitepoint-editors/node-elasticsearch-tutorial 上去看。

我们目前只需要知道:

  1、data.json是测试数据文件,1000条数据。

  2、index.js文件的例子就是导入data.json文件中的数据到elasticsearch。使用node index.js运行。

$ node index.js
1000 items parsed from data file
Successfully indexed 1000 out of 1000 items

3、indices.js用于检查索引信息的准确性。

4、其它的elasticsearch测试文件都是检索数据的例子。有各种写法,以后慢慢研究就可以了。

先弄个简单查询的在先前安装的ElasticSearch Toolbox上试试。

由于导入了数据。现在可以在工具中选择索引library,类型article.然后直接点击查询可以看到如下结果:

上面结果是查询所有的,我们可以点击QUERY DEITOR编辑查询条件,比如查询作者名为Rowe的数据,条件如下:

{
"query": {
"match": {
"authors.firstname": "Rowe"
}
},
"from": 0,
"size": 10
}

可以查到一条记录。

关于Elasticsearch数据检索知识下一篇文章再说。

转自https://www.cnblogs.com/fhen/p/6652455.html

学习用Node.js和Elasticsearch构建搜索引擎(1):了解并运行Elasticsearch的更多相关文章

  1. 学习用Node.js和Elasticsearch构建搜索引擎(6):实际项目中常用命令使用记录

    1.检测集群是否健康. curl -XGET 'localhost:9200/_cat/health?v' #后面加一个v表示让输出内容表格显示表头 绿色表示一切正常,黄色表示所有的数据可用但是部分副 ...

  2. 学习用Node.js和Elasticsearch构建搜索引擎(4): 构建Elasticsearch搜索引擎

    一.目标 使用node搭建一个知识库检索系统,要求词条平均检索速度必须在1s以内. 二.思路. 本人思路如下图. 橙色部分为我们要开发的内容, ES服务搭建(暂时用单节点测试,集群搭建以后再说), 三 ...

  3. 学习用node.js建立一个简单的web服务器

    一.建立简单的Web服务器涉及到Node.js的一些基本知识点: 1.请求模块 在Node.js中,系统提供了许多有用的模块(当然你也可以用JavaScript编写自己的模块,以后的章节我们将详细讲解 ...

  4. 学习用Node.js和Elasticsearch构建搜索引擎(2):一些检索命令

    1.Elasticsearch搜索数据有两种方式. 一种方式是通过REST请求URI,发送搜索参数: 另一种是通过REST请求体,发送搜索参数.而请求体允许你包含更容易表达和可阅读的JSON格式.这个 ...

  5. 学习用Node.js和Elasticsearch构建搜索引擎(7):零停机时间更新索引配置或迁移索引

    上一篇说到如果一个索引的mapping设置过了,想要修改type或analyzer,通常的做法是新建一个索引,重新设置mapping,再把数据同步过来. 那么如何实现零停机时间更新索引配置或迁移索引? ...

  6. 学习用Node.js和Elasticsearch构建搜索引擎(5):mac本机部署canal

    1.背景介绍 最近做的一个项目需要快速检索数据,经过商讨后采用了ElasticSearch作为快速检索数据引擎,但是数据如何同步到ES中是个问题,我们最开始计划了定时任务.mysql trigger等 ...

  7. 学习用Node.js和Elasticsearch构建搜索引擎(3):使用curl命令操作elasticsearch

    使用Elasticsearch不免要提到curl工具,curl是利用URL语法在命令行方式下工作的开源文件传输工具.官网地址:https://curl.haxx.se/ 因为elasticsearch ...

  8. node.js服务端程序在Linux上持久运行

    如果要想在服务端部署node.js程序,让其持久化运行,就不能单单使用npm start命令运行,当然了,这样运行是毫无问题的,但是当关闭xshell窗口或者是关闭进程的时候(其实关闭xshell窗口 ...

  9. 如何用 Node.js 和 Elasticsearch 构建搜索引擎

    Elasticsearch 是一款开源的搜索引擎,由于其高性能和分布式系统架构而备受关注.本文将讨论其关键特性,并手把手教你如何用它创建 Node.js 搜索引擎. Elasticsearch 概述 ...

随机推荐

  1. [20170606]11G _optimizer_null_aware_antijoin.txt

    [20170606]11G _optimizer_null_aware_antijoin.txt --//上午测试_optimizer_null_aware_antijoin,发现自己不经意间又犯了一 ...

  2. Spring入门详细教程(一)

    一.spring概述 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2003 年兴起的一个轻量级的 ...

  3. Linux系统网络文件配置

    /etc  一.修改配置文档(需要重启网络配置,永远生效) 1.修改IP地址[MariaDB@db1]$ vi /etc/sysconfig/network-scripts/ifcfg-eth0DEV ...

  4. php笔记(一)php介绍及数据类型

    php 官方手册:http://php.net/manual/zh/ 1.PHP(全称 Hypertext Preprocessor,超文本预处理器的字母缩写)是一种服务器端脚本语言,它可嵌入到 HT ...

  5. LeetCode算法题-Number of Segments in a String(Java实现)

    这是悦乐书的第226次更新,第239篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第93题(顺位题号是434).计算字符串中的段数,其中段定义为非空格字符的连续序列.请注 ...

  6. 【2018.08.19 C与C++基础】编程语言类型系统简介(草稿)

    还是先占坑,等理顺了思路再写,学过的东西总是无法系统化,感觉什么都知道一点,但一深入却是一脸懵逼. 这真的是个问题,看似很努力,却无法成为一个master. 参考链接: 1. 编程语言的类型系统为何如 ...

  7. C语言入坑指南-被遗忘的初始化

    前言 什么是初始化?为什么要初始化?静态变量和局部变量的初始化又有什么区别?实际应用中应该怎么做?本文将一一回答这些问题. 什么是初始化 初始化指的是对数据对象或者变量赋予初始值.例如: int va ...

  8. win32gui.Findwindow(parm1,parm2)查找窗口的句柄方法

    介绍之前先让大家了解一下win32gui的模块用法 和 获取窗口类名工具 使用Python时,有时也会要操作到系统窗口的一些东西,下面就介绍win32gui.Findwindow(param1,par ...

  9. 在Intellij IDEA下通过Hibernate逆向生成实体类

    前言:在IDEA中,通过相关插件,可以利用Hibernate逆向生成数据表对应的实体类.具体操作及注意事项见本篇随笔. 1.创建一个基于maven的hibernate工程.并在工程中添夹hiberna ...

  10. 基于Django rest framework 和Vue实现简单的在线教育平台

      一.基于api前端显示课程详细信息 1.调整Course.vue模块 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...