windows下安装Elasticsearch以及Java应用

一、下载elasticsearch-7.3.1-windows-x86_64安装包放置指定盘下

解压目录如下:

windows下安装Elasticsearch以及Java应用_第1张图片

配置环境变量:

windows下安装Elasticsearch以及Java应用_第2张图片

去到bin目录下点击elasticsearch.bat启动,或是%ES_HOME%\bin\elasticsearch.bat启动都可以,然后浏览器访问:127.0.0.1:9200,如下即安装成功

windows下安装Elasticsearch以及Java应用_第3张图片

二、安装Head插件(head是ES的集群管理工具,可以用于数据的浏览和查询)

由于ES是一款开源软件,被托管在Git上,所以如要使用必须先要安装Git,通过Git获取elasticsearc-head

由于运行elasticsearc-head会使用到grunt,而grunt需要npm包管理器,所以nodejs也是必须要安装的

2.1、安装nodejs

下载对应自己系统对应的 Node.js 版本,地址:https://nodejs.org/zh-cn/

放置到指定盘进行安装,选定安装地址,一路next就可以了

安装完成查看是否安装成功:

node -v 查看node版本

npm -v 查看npm版本

如下图既是安装成功

安装完成后,文件目录如下图

windows下安装Elasticsearch以及Java应用_第4张图片

环境配置

此处的环境配置主要配置的是 npm 安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。
  例如:我希望将全模块所在路径和缓存路径放在我node.js安装的文件夹中,则在我的安装目录下创建两个文件夹【node_global】及【node_cache】如下图:

windows下安装Elasticsearch以及Java应用_第5张图片

设置全局目录和缓存目录,创建完两个空文件夹之后,打开cmd命令窗口,输入

npm config set prefix "D:\nodejs\node_globall"

npm config set cache "D:\nodejs\node_cache"

windows下安装Elasticsearch以及Java应用_第6张图片

环境变量配置:

编辑path变量:

测试

npm install express -g        # -g是全局安装的意思

注:如果安装时不加 -g 参数,则安装的模块就会安装在当前路径下,上例若不加 -g 参数,则 express 模块会安装在 C:\Users\yi081目录下的 【node_modules】目录下,目录若不存在会自动生成

最新express版本中将命令工具分家出来了(项目地址:https://github.com/expressjs/generator),所以还需要安装一个命令工具,命令如下:

npm install -g express-generator

然后打开我们的安装目录发现 express 被安装在了全局目录下,如下图:

windows下安装Elasticsearch以及Java应用_第7张图片

使用express创建一个工程,输入命令:express helloworld

windows下安装Elasticsearch以及Java应用_第8张图片

转到 helloworld 目录下,命令:cd helloworld ;    npm start

windows下安装Elasticsearch以及Java应用_第9张图片

装载 node 包管理器,执行命令:npm install

windows下安装Elasticsearch以及Java应用_第10张图片

启动 helloworld,输入命令:npm start,如下图,新创建的 helloworld 已经运行在3000端口上

在浏览器中输入地址:http://localhost:3000/,如下图

windows下安装Elasticsearch以及Java应用_第11张图片 标题

2.2、安装Git

根据自己的版本需要下载Git放置到指定盘安装

windows下安装Elasticsearch以及Java应用_第12张图片

windows下安装Elasticsearch以及Java应用_第13张图片

创建开始菜单目录名称,默认git,不需要修改

windows下安装Elasticsearch以及Java应用_第14张图片

选择git使用的编辑器

windows下安装Elasticsearch以及Java应用_第15张图片

windows下安装Elasticsearch以及Java应用_第16张图片

windows下安装Elasticsearch以及Java应用_第17张图片

行末换行符转换,使用默认值

windows下安装Elasticsearch以及Java应用_第18张图片

windows下安装Elasticsearch以及Java应用_第19张图片

windows下安装Elasticsearch以及Java应用_第20张图片

windows下安装Elasticsearch以及Java应用_第21张图片

Install  安装

windows下安装Elasticsearch以及Java应用_第22张图片

检测安装成功,任意窗口或桌面都可以右键,出现下面两个选项即可

点击Git Bash Here,显示终端

windows下安装Elasticsearch以及Java应用_第23张图片

安装成功

2.3、安装head插件

下载地址:https://github.com/mobz/elasticsearch-head;点击clone or download按钮,点击download zip进行下载。下载完毕后解压到任意路径上,别放在elasticsearch安装路径上

windows下安装Elasticsearch以及Java应用_第24张图片

安装grunt

运行head需要借助grunt命令,因此需要安装grunt,输入命令 cd D:\nodejs(你安装nodejs的路径) 进入nodejs的根目录下,然后执行指令 npm install -g grunt  -cli 进行安装grunt。

windows下安装Elasticsearch以及Java应用_第25张图片

安装pathomjs

输入命令 cd D:\head(你安装head的路径) 进入head的根目录下,然后执行命令:npm install 进行安装pathomjs(安装时间较长)。如果出现Error关键字,则有可能是网络不顺畅。

windows下安装Elasticsearch以及Java应用_第26张图片

 运行head

最后,什么都别关,还没结束呢,在刚刚的命令窗口执行运行命令 grunt server,启动head服务,如下所示则为启动成功。(可以到head根目录下修改Gruntfile.js文件的启动端口,默认是9100)

然后去修改elasticsearch的配置文件,elasticsearch安装目录/config/elasticsearch.yml,打开文件后在末端另起一行分别顶格添加如下两行红色字体文本,保存后重启elasticsearch.bat。

1 http.cors.enabled: true

2 http.cors.allow-origin: "*"

用head访问elasticsearch

浏览器访问 http://localhost:9100 (head的服务端口),访问成功

windows下安装Elasticsearch以及Java应用_第27张图片

将D:\eshead\elasticsearch-head-master下的Gruntfile.js文件中的connect-->server-->options下面添加hostname:'*',允许所有IP可以访问:

windows下安装Elasticsearch以及Java应用_第28张图片

将D:\eshead\elasticsearch-head-master\_site下的app.js文件中的

this.base_uri=this.config.base_uri||this.prefs.get("app-base_uri")||"http://localhost:9200";

修改为

this.base_uri=this.config.base_uri||this.prefs.get("app-base_uri")||"http://192.168.8.8:9200";

 

三、安装kibana(kibana类似于head,但是kibana功能更强大,使用的用户更多)

下载与你安装的ES版本一致的kibana到指定文件夹解压缩,然后到bin文件夹下启动

kibana.yml中设置server.host: "0.0.0.0",同一网络可被其他机器访问

访问localhost:5601

windows下安装Elasticsearch以及Java应用_第29张图片

四、安装分词器ik

访问 https://github.com/medcl/elasticsearch-analysis-ik  找 releases 找到对应的 es 版本,下载到指定文件夹解压缩

将pom.xml中的版本号改为跟你的ES版本相同

然后在此目录下打开dos窗口,执行命令mvn clean package进行打包

windows下安装Elasticsearch以及Java应用_第30张图片

打包后会发现上边的目录就多一个target文件夹了 

然后进入\target\releases下可以看到打的zip包

然后先在你所安装es的所在目录下的的plugins下创建analysis-ik文件夹,然后将上面的zip包拷贝到新建的该文件夹下解压缩

windows下安装Elasticsearch以及Java应用_第31张图片

最后重新启动elasticsearch,可以启动说明安装成功

五、使用kibana实现基本CURD操作

新增索引:

windows下安装Elasticsearch以及Java应用_第32张图片

新增默认配置索引:

 查看索引:

windows下安装Elasticsearch以及Java应用_第33张图片

windows下安装Elasticsearch以及Java应用_第34张图片

查看所有索引:GET _all/_settings

在索引下添加文档:

windows下安装Elasticsearch以及Java应用_第35张图片

不指定文档ID的时候用post:

windows下安装Elasticsearch以及Java应用_第36张图片

查询文档(需要知道文档ID):GET /lib/user/1

查看文档的指定字段:GET /lib/user/1?_source=age,about

修改文档:

       1、使用put直接覆盖之前的文档

windows下安装Elasticsearch以及Java应用_第37张图片

2、直接修改用post

windows下安装Elasticsearch以及Java应用_第38张图片

删除文档:DELETE /lib/user/1

删除索引:DELETE lib

使用Multi get API实现批量获取文档:

windows下安装Elasticsearch以及Java应用_第39张图片

批量获取文档指定字段:

windows下安装Elasticsearch以及Java应用_第40张图片

获取同索引同类型下的不同文档:

windows下安装Elasticsearch以及Java应用_第41张图片

使用Bulk API实现批量操作

Bulk会把将要处理的数据载入内存中,所以数量是有限制的,取决于硬件、文档大小以及复杂性、索引以及搜索的负载,一般建议是1000-5000个文档,大小建议5-15MB,默认不能超过100MB,可以在ES 的配置文件(elastcsearch.yml)中配置

批量添加文档:

windows下安装Elasticsearch以及Java应用_第42张图片

批量修改和删除文档:

windows下安装Elasticsearch以及Java应用_第43张图片

版本控制

Elasticsearch采用了乐观锁来保证数据的一致性,即当用户对document(文档,即关系数据库中表里的一条数据)进行操作时,并不需要对该document做加锁、解锁的操作,只需要指定要操作的版本即可。当版本号一致时,Elasticsearch会允许该操作顺利进行,而当版本号存在冲突时,Elasticsearch会提示冲突并抛出异常(VersionConflictEngineException)。

Elasticsearch的版本号的取值范围为1到2^63-1。

windows下安装Elasticsearch以及Java应用_第44张图片

内部版本控制:使用的时_version。

外部版本控制:elasticsearch在处理外部版本号时会与内部版本号的处理有些不同。它不再是检查_version是否与请求中指定的数据相同,而是检查当前的_version是否比指定的数值小。如果请求成功,那么外部的版本号就会被存储到文档中的_version中。

为了保持_version与外部版本控制的数据一致,使用version_type=external,当使用外部版本控制时,版本号要大于已有的版本号才可以成功修改

windows下安装Elasticsearch以及Java应用_第45张图片

查询(ES7版本之后):GET /myindex/_mapping

GET /yangsir/_doc/_search?q=post_date:2019-09-19

  当查询日期类型时,必须是精确查询

Object数据类型以及手动创建mapping

windows下安装Elasticsearch以及Java应用_第46张图片windows下安装Elasticsearch以及Java应用_第47张图片

查询操作注意事项:

Query查询关键字,当精确查询的时候使用term或者是terms,模糊查询的时候使用match,因为match是使用分词查找的:

windows下安装Elasticsearch以及Java应用_第48张图片

Multi_match可以同时查询多个字段:

Match_phrase短语匹配查询:

windows下安装Elasticsearch以及Java应用_第49张图片

_source控制返回字段:

windows下安装Elasticsearch以及Java应用_第50张图片

使用groovy脚本执行partial update

windows下安装Elasticsearch以及Java应用_第51张图片

windows下安装Elasticsearch以及Java应用_第52张图片

windows下安装Elasticsearch以及Java应用_第53张图片

windows下安装Elasticsearch以及Java应用_第54张图片

重建索引且保证应用程序不用重启

windows下安装Elasticsearch以及Java应用_第55张图片

windows下安装Elasticsearch以及Java应用_第56张图片

Eclipse下使用ES

Eclipse新建maven项目,并添加依赖:

  

   org.elasticsearch.client

   transport

   7.3.1

  

  

   junit

   junit

   4.12

   test

  

  

    log4j

    log4j

    1.2.17

    

  

  

  

  

   org.apache.maven.plugins

   maven-compiler-plugin

   3.2

  

   1.8

   1.8

   UTF-8

  

  

  

  

编写Junit测试类:

windows下安装Elasticsearch以及Java应用_第57张图片windows下安装Elasticsearch以及Java应用_第58张图片

//添加文档

/**

 * "{"+

 * "\"id\":\"1\","+

 * "\"title\":\"Java设计模式之装饰模式\","+

 * "\"content\":\"在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能\","+

 * "\"postdate\":\"2019-09-24\","+

 * "\"url\":\"csdn.net/79239072\""+

 * "}"

 */

第一步:去kibana中新建索引及mapping

windows下安装Elasticsearch以及Java应用_第59张图片windows下安装Elasticsearch以及Java应用_第60张图片

windows下安装Elasticsearch以及Java应用_第61张图片

将连接方式提取:

windows下安装Elasticsearch以及Java应用_第62张图片

修改文档:

windows下安装Elasticsearch以及Java应用_第63张图片

Upsert操作(当修改操作没有对应的ID的时候执行新增操作):

windows下安装Elasticsearch以及Java应用_第64张图片

批量操作文档:

windows下安装Elasticsearch以及Java应用_第65张图片

windows下安装Elasticsearch以及Java应用_第66张图片

查询删除:

windows下安装Elasticsearch以及Java应用_第67张图片

查询所有:

windows下安装Elasticsearch以及Java应用_第68张图片

windows下安装Elasticsearch以及Java应用_第69张图片

 

windows下安装Elasticsearch以及Java应用_第70张图片

windows下安装Elasticsearch以及Java应用_第71张图片

windows下安装Elasticsearch以及Java应用_第72张图片

windows下安装Elasticsearch以及Java应用_第73张图片

windows下安装Elasticsearch以及Java应用_第74张图片

windows下安装Elasticsearch以及Java应用_第75张图片

windows下安装Elasticsearch以及Java应用_第76张图片

windows下安装Elasticsearch以及Java应用_第77张图片

聚合查询:

windows下安装Elasticsearch以及Java应用_第78张图片

windows下安装Elasticsearch以及Java应用_第79张图片

组合查询:

windows下安装Elasticsearch以及Java应用_第80张图片

windows下安装Elasticsearch以及Java应用_第81张图片

windows下安装Elasticsearch以及Java应用_第82张图片

集群管理

windows下安装Elasticsearch以及Java应用_第83张图片

添加ik分词器依赖:

 

       com.janeluo

       ikanalyzer

       2012_u6  

利用ik分词器获取分词结果:

windows下安装Elasticsearch以及Java应用_第84张图片

Kibana分页查询:

windows下安装Elasticsearch以及Java应用_第85张图片

删除整个类型:

windows下安装Elasticsearch以及Java应用_第86张图片

问题解决:

windows下安装Elasticsearch以及Java应用_第87张图片

出现这个问题是由于Lucene版本与elasticsearch的版本依赖不一致导致,解决方式如下:

通过head查看已经依赖的ES对应的Lucene版本

windows下安装Elasticsearch以及Java应用_第88张图片

或是在DOS命令使用:curl -XGET localhost:9200

windows下安装Elasticsearch以及Java应用_第89张图片

在项目pom.xml里面添加对应的依赖:

    org.apache.lucene

    lucene-core

    8.1.0

    org.apache.lucene

    lucene-queryparser

    8.1.0

    org.apache.lucene

    lucene-analyzers-common

    8.1.0

 

你可能感兴趣的:(windows下安装Elasticsearch以及Java应用)