zoukankan      html  css  js  c++  java
  • 【ElasticSearch+NetCore 第一篇】在Windows上安装部署ElasticSearch和ElasticSearch-head

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    一、下载ElasticSearch

    官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch

    注意,现在ElasticSearch的最新版本为7.1.1,与6.x版本相比改动较大,但相关资源(稳定的SDK)并没有更新,所以容易造成问题,所以推荐下载6.8的版本使用。

    二、安装ElasticSearch

    新建ElasticSearchService文件夹,在该文件夹内新建node-1和node-2两个文件夹。将下载到的压缩包内的文件复制到node1文件夹内。

    进入  node-1 > bin  目录,在该文件夹下 shift+右键 打开PowerShell或者Cmd窗口,输入  elasticsearch.bat  即可。注意,不同的cmd工具输入的格式可能可能有些出入,比如在powershell中,需要写成  ./elasticsearch 

    回车,等待程序启动完成。

    打开浏览器,输入:http://localshot:9200,可以看到一段json数据,说明elasticsearch已经启动成功。

    三、安装elasticsearch-head

    ElasticSearch-head依赖NodeJs和Grunt,请先安装好nodejs环境,在此不做赘述。

    github地址:https://github.com/mobz/elasticsearch-head

    如果已经安装了git,可以直接使用git命令克隆一份代码到本地  git clone git://github.com/mobz/elasticsearch-head.git ,没有安装也可以手动下载zip包,解压后,后面的操作是一样的。

    进入elasticsearch-head目录,运行  npm install ,因为某些原因,使用npm的速度会比较慢,所以建议使用  cnpm  ,如果未安装,请 参考这里 。安装完成后,运行 cnpm install,静等安装完成即可。

    当包全部安装结束,使用  npm run start  命令启动 elasticsearch-head

    打开浏览器,输入:http://localhost:9100,进入管理界面。

    这时,我们发现elasticsearch-head无法连接到服务,这是因为它和elasticsearch的交互是通过ajax来完成的,这里会存在跨域的问题,

    解决的方式也很简单,找到elasticsearch的保存目录,在config文件夹下使用vscode打开  elasticsearch.yml  文件,在最下方输入以下代码:

    http.cors.enabled: true
    http.cors.allow-origin: "*"

    保存,重启elasticsearch服务,重新打开 http://localhost:9100,连接成功。

    四、安装多个ElasticSearch实例

    ElasticSearch原生支持集群功能,配置起来也很简单,还是上面提到的  elasticsearch.yml   文件,需要添加几个配置:

    1. 集群名称【cluster.name】,要添加到集群的所有节点中,这个配置项必须有而且必须一致
    2. 节点名称【node.name】,当前节点的名称,这个配置项必须有,而且在集群中必须唯一
    3. 绑定IP【network.host】,服务绑定的ip地址,默认是 127.0.0.1,本地测试时可以省略,生产环境下,必须要有
    4. http端口【http.port】,默认使用9200端口,因为我是在同一台电脑上配置多个节点,所以在这里必须配置一个不同的端口,如果是部署在不同的电脑上,这个可以省略
    5. 服务发现【discovery.zen.ping.unicast.hosts】,这里配置的是集群通讯用的端口,默认是9300,如果实在多台机器上部署节点,那端口号可以省略,但如果在同一台机器上部署多个节点,需要指定端口号,默认会自动往后排 9301,9302...

    OK,下面实际操作一下,停止node-1的服务,把文件拷贝一份到node-2文件夹。

    分别打开相应目录下的 config > elasticsearch.yml文件,添加上面说到的配置项,最终的配置如下:

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    cluster.name: taoxue
    node.name: node-1
    
    network.host: 127.0.0.1 http.port:
    9200 discovery.zen.ping.unicast.hosts: ["127.0.0.1:9200", "127.0.0.1:9201"]
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    cluster.name: taoxue
    node.name: node-2
     
    network.host: 127.0.0.1
    http.port: 9201
    discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301"]

    OK,分别启动这两个节点,在浏览器中打开 http://localhost:9200 和 http://localhost:9201,发现已经应用了我们的刚刚的配置。

    这里注意下,如果你下载的是 7.x 版本的,集群配置稍有不同,这里我也贴一下在一台电脑上开多个节点的配置文件,但还是那句话,不建议使用7.x的版本,因为后面会有很多坑。

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    cluster.name: taoxue
    node.name: node-1
    
    http.port: 9200
    cluster.initial_master_nodes: ["node-1","node-2","node-3"]
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    cluster.name: taoxue
    node.name: node-2
    
    http.port: 9201
    cluster.initial_master_nodes: ["node-1","node-2","node-3"]

    五、添加中文分词器插件 ElasticSearch-IK

    github地址:https://github.com/medcl/elasticsearch-analysis-ik/

    下载已经打包好的release包,注意要跟我们安装的ElasticSearch的版本一致。我安装的6.8.1版本,这里没有对应的IK版本,那就不管,找大版本最近的6.8.0。

    下载完成以后,打开ElasticSearch的目录的plugins文件夹,新建一个文件夹命名为ik,把压缩包的内容拷贝进去。

    启动ElasticSearch服务,发现无法运行,大概的意思是插件IK是基于6.8.0构建的,而现在运行的是6.8.1版本。不要慌,在刚才的ik文件夹内找到一个名为  plugin-descriptor.properties  的文件,用vscode打开,直接滚动到最后一行, elasticsearch.version=6.8.0 ,把这里的 6.8.0 改成 6.8.1,保存,然后重新启动服务,可以发现,可以正常启动了。

    至此,elasticsearch的安装就结束了,下一篇,我们将尝试使用aspnetcore + elasticsearch实现一些简单的增删改查的工作。

  • 相关阅读:
    HashMap和HashTable区别【转载】
    Linux常用指令【转载】
    遇到的eclipse启动报错问题解决
    个人总结
    结对编程之黄金点游戏
    第三周作业二
    vs2013的安装以及单元测试
    小学生整数四则运算
    对于迅雷下载器的评价
    关于软件工程的疑问
  • 原文地址:https://www.cnblogs.com/diwu0510/p/11071344.html
Copyright © 2011-2022 走看看