基本概念

集群和节点的概念
1.集群是由节点组成的
2.每个集群都有唯一的名字默认是elasticsearch
3.cluster.name: niubiwali //集群的名字很重要因为每个节点只是集群的一部分,所有的节点都是通过集群的名字加入集群的
4.每个节点都有自己的名字
5.每个节点都有自己的独立服务

索引
1.索引是含有相同属性的文档集合
索引: 还有相同属性的文档集合(好比一个数据库)例如:图书索引
类型:索引可以定义一个或者多个类型,文档必须属于一个类型(相当与一张表)例如 有销售类的书,技术工程类的书
文档: 文档是可以背索引的基本数据单位(相当于一条数据)例如 具体的每本书就是文档

和索引相关的有“分片”和“备份”

分片:每个索引都有多个分片,每个分片是一个Lucene索引

注:假如一个索引数据量很大,就会产生硬盘压力很大。所以就要‘分片’来分担压力。可以水平的扩展和拆分以及分布式的操作,可以提高搜索和其他操作

备份:拷贝一份分片就完成了分片的备份,注:当一个主分片失败或出现问题时,"备份分片"就可以代替工作,从而提高了ES的可用性,备份的分片还可以执行搜索的操作,来分摊搜索的压力

安装

1.安装node.js(6.3.0)
2.检测PATH环境变量是否配置了Node.js
cmd下
node --version
3.D:/www/nodejs文件夹下创建hello.js
var http = require('http');

http.createServer(function (request, response) {

// 发送 HTTP 头部 
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});

// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

4.启动服务
cmd下执行:
node hello.js

浏览器访问:http://localhost:8888
hello,world

安装配置

1.安装jdk
2.设置path和JAVA_HOME
3.下载:
elasticsearch下载地址:
https://www.elastic.co/downloads/elasticsearch
点zip
4.解压,进入D:\Tools\elasticsearch\elasticsearch-6.0.0
5.启动:
右键->打开dos,执行:
.\bin\elasticsearch

访问:http://localhost:9200
6.配置相应参数 启动
dos下继续执行
./bin/elasticsearch -Ecluster.name=yutao -Enode.name=yutao_node_1
不成功

7.安装elasticsearch作为window服务
在cmd中先进入安装目录中的bin目录
执行:
./elasticsearch-service.bat install
8.
./elasticsearch-service start //启动失败
./elasticsearch-service manager //打开管理控制台,但启动依然失败

分布式安装

elasticSearch 分布式安装

1.在elasticSearch下的config下elasticsearch.yml文件最后一行添加
注意 一定要加空格在:后面
cluster.name: wali //集群的名字
node.name: master //给主的master(指挥官)节点起名字
node.master: true //告诉他是master
network.host: 127.0.0.1 绑定ip

2.配置分支节
外面新建文件夹es_slave,copy2份 elasticsearch.zip到es_slave下解压
叫es_slave1和es_slave2
到es_slave1的config下的elasticsearch.yml进行配置
cluster.name: niubiwali //注意要与master的名字相同
node.name: slave1 \\节点名字
network.host: 127.0.0.1 绑定ip
http.port: 8200 //默认是9200,出现端口冲突现象
discovery.zen.ping.unicast.hosts: ["127.0.0.1"] //主要是找的master,如果不配置他是游离于集群之外的,找不到master,

保存启动服务
同样操作es_slave2但是端口配置为8000

基本用法

1.索引命名是result api 为格式的
api的基本格式为:http://<ip>:<port>/<索引>/<类型>/<文档的id>
2.常用的http动词:GET/PUT/POST/DELETE
3.下载postman 接口测试工具
4.创建索引的格式
{
"settings":{ //关键词 settings指定索引的配置
"number_of_shards": 3, //知道索引的分片数
"number_of_replicas": 1 //指定备份数
},
"mappings":{ //索引的映射编译
"man":{ //索引名字的映射
"properties":{ //定义属性
"name":{
"type":"text"
},
"country":{
"type":"keyword"
},
"age":{
"type":"integer"
},
"date":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis"//指定时间格式
}
}
},
"woman":{

}
}
}
//=================上面的只是为了介绍,下面的正确=========================

{
"settings":{
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings":{
"man":{
"properties":{
"name":{
"type": "text"
},
"country":{
"type": "keyword"
},
"age":{
"type": "integer"
},
"date":{
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis"
}
}
}
}
}

增删改查索引

http://blog.csdn.net/liangxw1/article/details/78015663
Powershell原生支持的cURL - Invoke-WebRequest 及与 cURL的使用区别

查看:
Get-Help Invoke-WebRequest

Get-Help 在此计算机上找不到该 cmdlet 的帮助文件。它仅显示部分帮助。
-- 若要下载并安装包含此 cmdlet 的模块的帮助文件,请使用 Update-Help, 以管理员身份运行。
-- 若要联机查看此 cmdlet 的帮助主题,请键入: "Get-Help Invoke-WebRequest -Online" 或
转到 http://go.microsoft.com/fwlink/?LinkID=217035。

使用:

1.创建索引:

curl -XPUT 'http://localhost:9200/twitter/'
改为:
Invoke-WebRequest http://localhost:9200/twitter/ -method put

curl -XPOST http://127.0.0.1:9200/logstash-2015.06.21/testlog -d '{
"date" : "1434966686000",
"user" : "chenlin7",
"mesg" : "first message into Elasticsearch"
}'
改为:
Invoke-WebRequest http://localhost:9200/index/type/ -method post -body '{"data":"1","user":"zhangsan","msg":"hello,es"}' -ContentType "application/json"

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
  {
   "name": "John Doe"
  }'
改为:
Invoke-WebRequest http://localhost:9200/index/type/ -method post -body '{"data":"1","user":"zhangsan","msg":"hello,es"}' -ContentType "application/json"

2.修改索引:
Invoke-WebRequest http://localhost:9200/index/type/_update -method post -body '{"user":"李四"}' -ContentType "application/json"

3.搜索:
浏览器下查看:http://localhost:9200/index/_search

Invoke-WebRequest http://localhost:9200/index/type/_search

Invoke-WebRequest http://localhost:9200/index/type/_search

4.删除索引:
Invoke-WebRequest http://localhost:9200/index/type/ -method delete

http://blog.csdn.net/yinhaonefu/article/details/46715801
ES内置的REST接口
/index/_search 
/_aliases 获取或操作索引的别名
/index/ 查看指定索引的详细信息
/index/type/ 创建或操作类型
/index/_mapping 创建或操作mapping

/index/_settings 创建或操作设置(number_of_shards是不可更改的)
/index/_open 打开被关闭的索引
/index/_close 关闭索引
/index/_refresh 刷新索引(使新加内容对搜索可见,不保证数据写入磁盘)
/index/_flush 刷新索引(会出发lucene提交)

express框架删除elasticsearch索引数据

express 框架删除elasticsearch索引数据
1.在elasticsearch.js文件下添加
function deleteDocument(id) {
return elasticClient.delete({
index: indexName,
type: "foods",
id: id
});
}
exports.deleteDocument = deleteDocument;

2.在路由删除数据代码块中添加
elastic.deleteDocument(req.body.id).then(function(result) {
res.render('home/publish', {
rss: rs[0]
})
})

express框架修改elasticsearch索引数据

express 框架修改elasticsearch索引数据
1.在elasticsearch.js文件下添加
function updateDocument(document) {
return elasticClient.update({
index: indexName,
type: "foods",
id: document.id,
body: {
doc: {
name: document.name,
price: document.price,
num: document.num,
path: document.path
}
}

});
}
2.在路由修改数据代码块中添加

let goods = {};
goods.name = fields.goodsname;
goods.price = fields.goodsprice;
goods.num = fields.goodsnum;
goods.path = rs[0][0].goodspath;
goods.id = loginbean.goodsid;
elastic.updateDocument(goods).then(function(result) {
res.render('home/publish', {
rss: rs[0]
})
})

elasticsearch 学习笔记的更多相关文章

  1. Elasticsearch学习笔记一

    Elasticsearch Elasticsearch(以下简称ES)是一款Java语言开发的基于Lucene的高效全文搜索引擎.它提供了一个分布式多用户能力的基于RESTful web接口的全文搜索 ...

  2. elasticsearch学习笔记——相关插件和使用场景

    logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格 ...

  3. ElasticSearch学习笔记(超详细)

    文章目录 初识ElasticSearch 什么是ElasticSearch ElasticSearch特点 ElasticSearch用途 ElasticSearch底层实现 ElasticSearc ...

  4. 【原】无脑操作:ElasticSearch学习笔记(01)

    开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一.ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网(https:// ...

  5. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  6. Elasticsearch学习笔记

    Why Elasticsearch? 由于需要提升项目的搜索质量,最近研究了一下Elasticsearch,一款非常优秀的分布式搜索程序.最开始的一些笔记放到github,这里只是归纳总结一下. 首先 ...

  7. Elasticsearch学习笔记 一

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws. 本文参考和学习资料 <ES权威指南> 一.基本概念 存储数据到ES中的行为叫做 ...

  8. 2018/2/13 ElasticSearch学习笔记三 自动映射以及创建自动映射模版,ElasticSearch聚合查询

    终于把这些命令全敲了一遍,话说ELK技术栈L和K我今天花了一下午全部搞定,学完后还都是花式玩那种...E却学了四天(当然主要是因为之前上班一直没时间学,还有安装服务时出现的各种error真是让我扎心了 ...

  9. 2018/2/11 ELK技术栈之ElasticSearch学习笔记二

    终于有时间记录一下最近学习的知识了,其实除了写下的这些还有很多很多,但懒得一一写下了: ElasticSearch添加修改删除原理:ElasticSearch的倒排索引和文档一旦生成就不允许修改(其实 ...

  10. elasticsearch学习笔记——安装,初步使用

    前言 久仰elasticsearch大名,近年来,fackbook,baidu等大型网站的搜索功能均开始采用elasticsearch,足见其在处理大数据和高并发搜索中的卓越性能.不少其他网站也开始将 ...

随机推荐

  1. Python入门学习(一)

    看完了莫烦Python的视频,对于Python有了一点感觉,接下来打算把小甲鱼的视频啃完,附上学习网址:http://blog.fishc.com/category/python 小甲鱼的视频是从零基 ...

  2. css3 滚动条出现 页面不跳动

    .wrap-outer { margin-left: calc(100vw - 100%); }   .wrap-outer { padding-left: calc(100vw - 100%); } ...

  3. JAVA中文乱码之解决方案

    1.解决HTML页面的中文问题:为了使HTML页面很好的支持中文,在每个HTML页面的<head>标签内部增加(创建HTML页面自带) <head> <meta char ...

  4. P3003 [USACO10DEC]苹果交货Apple Delivery

    题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course, she tr ...

  5. linux 安装wordpress 无故往外发送大量垃圾邮件

    linux 安装wordpress 无故往外发送大量垃圾邮件 始末 表现出来的现象就是, 网站运行没多久,mysql服务就挂了,重启也无法启动起来,提示 No such file or dicrion ...

  6. JAVAWEB开发环境搭建,附JDK开发环境一键配置批处理bat

    JDK配置: CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar   JAVA_HOME: C:\Program Files\J ...

  7. js实现小球的弹性碰撞。

      前  言 MYBG 小编最近在做自己的个人网站,其中就用到了一个小球碰撞检测的功能,想自己写,无奈本人能力不足啊(毕竟还是一个菜鸟)!!就想着找个插件用一下也好,可是找了好久也没有找到一个比较好用 ...

  8. 开源API测试工具 Hitchhiker v0.4更新 - 没有做不到,只有想不到

    Hitchhiker 是一款开源的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍 ...

  9. 关于iOS GangSDK的使用,为App快速集成社群公会模块

    手上有一个自己开发的小游戏,想加一个家族系统活跃下游戏的氛围,想到这块儿可能会有大量的工作需要自己做,就偷了个懒去网上搜罗了一波,结果惊奇的发现居然真的有类似的服务,并且还是免费的,所以决定入坑尝试一 ...

  10. SQL Server 分页技术(存储过程)

    alter proc proc_getpage ), )='*', ), )='asc', @pagesize int , @pageindex int, )='' as begin declare ...