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

解压目录如下:

windows下安装Elasticsearch以及Java应用

配置环境变量:

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

二、安装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应用

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

windows下安装Elasticsearch以及Java应用

环境配置

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

windows下安装Elasticsearch以及Java应用

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

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

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

windows下安装Elasticsearch以及Java应用

环境变量配置:

windows下安装Elasticsearch以及Java应用

编辑path变量:

windows下安装Elasticsearch以及Java应用

测试

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

npm install -g express-generator

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用
标题

2.2、安装Git

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

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

选择git使用的编辑器

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

Install  安装

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

点击Git Bash Here,显示终端

windows下安装Elasticsearch以及Java应用

安装成功

2.3、安装head插件

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

windows下安装Elasticsearch以及Java应用

安装grunt

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

windows下安装Elasticsearch以及Java应用

安装pathomjs

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

windows下安装Elasticsearch以及Java应用

 运行head

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

windows下安装Elasticsearch以及Java应用

然后去修改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应用

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

windows下安装Elasticsearch以及Java应用

将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";

 

windows下安装Elasticsearch以及Java应用

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

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

windows下安装Elasticsearch以及Java应用

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

访问localhost:5601

windows下安装Elasticsearch以及Java应用

四、安装分词器ik

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

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

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

新增索引:

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

新增默认配置索引:

windows下安装Elasticsearch以及Java应用

 查看索引:

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

查看所有索引:GET _all/_settings

在索引下添加文档:

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

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

修改文档:

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

windows下安装Elasticsearch以及Java应用

2、直接修改用post

windows下安装Elasticsearch以及Java应用

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

删除索引:DELETE lib

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

windows下安装Elasticsearch以及Java应用

批量获取文档指定字段:

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用windows下安装Elasticsearch以及Java应用

使用Bulk API实现批量操作

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

批量添加文档:

windows下安装Elasticsearch以及Java应用

批量修改和删除文档:

windows下安装Elasticsearch以及Java应用

版本控制

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

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

windows下安装Elasticsearch以及Java应用

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

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

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

windows下安装Elasticsearch以及Java应用

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

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

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

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

windows下安装Elasticsearch以及Java应用windows下安装Elasticsearch以及Java应用

查询操作注意事项:

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

Match_phrase短语匹配查询:

windows下安装Elasticsearch以及Java应用

_source控制返回字段:

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

使用groovy脚本执行partial update

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

Eclipse下使用ES

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

<dependencies>

   <dependency>

   <groupId>org.elasticsearch.client</groupId>

   <artifactId>transport</artifactId>

   <version>7.3.1</version>

   </dependency>

   <dependency>

   <groupId>junit</groupId>

   <artifactId>junit</artifactId>

   <version>4.12</version>

   <scope>test</scope>

   </dependency>

   <dependency>

    <groupId>log4j</groupId>

    <artifactId>log4j</artifactId>

    <version>1.2.17</version>

</dependency>

  </dependencies>  

  <build>

   <plugins>

   <!-- java编译插件 -->

   <plugin>

   <groupId>org.apache.maven.plugins</groupId>

   <artifactId>maven-compiler-plugin</artifactId>

   <version>3.2</version>

   <configuration>

   <source>1.8</source>

   <target>1.8</target>

   <encoding>UTF-8</encoding>

   </configuration>

   </plugin>

   </plugins>

  </build>

编写Junit测试类:

windows下安装Elasticsearch以及Java应用windows下安装Elasticsearch以及Java应用

//添加文档

/**

 * "{"+

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

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

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

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

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

 * "}"

 */

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

windows下安装Elasticsearch以及Java应用windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

将连接方式提取:

windows下安装Elasticsearch以及Java应用

修改文档:

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

批量操作文档:

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

查询删除:

windows下安装Elasticsearch以及Java应用

查询所有:

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

 

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

聚合查询:

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

组合查询:

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

windows下安装Elasticsearch以及Java应用

集群管理

windows下安装Elasticsearch以及Java应用

添加ik分词器依赖:

<dependency>  

       <groupId>com.janeluo</groupId>

       <artifactId>ikanalyzer</artifactId>

       <version>2012_u6</version>  

</dependency>

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

windows下安装Elasticsearch以及Java应用

Kibana分页查询:

windows下安装Elasticsearch以及Java应用

删除整个类型:

windows下安装Elasticsearch以及Java应用

问题解决:

windows下安装Elasticsearch以及Java应用

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

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

windows下安装Elasticsearch以及Java应用

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

windows下安装Elasticsearch以及Java应用

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

<!--lucene 核心包-->

<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core -->

<dependency>

    <groupId>org.apache.lucene</groupId>

    <artifactId>lucene-core</artifactId>

    <version>8.1.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-queryparser -->

<dependency>

    <groupId>org.apache.lucene</groupId>

    <artifactId>lucene-queryparser</artifactId>

    <version>8.1.0</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-analyzers-common -->

<dependency>

    <groupId>org.apache.lucene</groupId>

    <artifactId>lucene-analyzers-common</artifactId>

    <version>8.1.0</version>

</dependency>

 

相关文章:

  • 2021-09-07
  • 2021-04-18
  • 2021-05-27
  • 2021-09-12
猜你喜欢
  • 2021-05-26
  • 2021-11-16
  • 2022-12-23
  • 2021-12-21
  • 2021-07-20
  • 2021-05-12
  • 2021-12-12
相关资源
相似解决方案