Elasticsearch初步使用(安装、Head配置、分词器配置)

1.ElasticSearch简单说明

  a.ElasticSearch是一个基于Lucene开发的搜索服务器,具有分布式多用户的能力,ElasticSearch是用Java开发的开源项目(Apache许可条款),基于Restful Web接口,能够达到实时搜索、稳定、可靠、快速、高性能、安装使用方便,同时它的横向扩展能力非常强,不需要重启服务。

  b.ElasticSearch是一个非常好用的实时分布式搜索和分析引擎,可以帮助我们快速的处理大规模数据,也可以用于全文检索,结构化搜索以及分析等。

  c.目前很多网站都在使用ElasticSearch进行全文检索,例如:GitHub、StackOverflow、Wiki等。

  d.ElasticSearch式建立在全文检索引擎Lucene基础上的,而Lucene是最先进、高效的开元搜索引擎框架,但是Lucene只是一个框架,要充分利用它的功能,我们需要很高的学习成本,而ElasticSearch使用Lucene作为内部引擎,在其基础上封装了功能强大的Restful API,让开发人员可以在不需要了解背后复杂的逻辑,即可实现比较高效的搜索。

  e.关于Lucene我在前面写过几篇博客,并且在GitHub上开源了一个Demo,博客地址是:http://www.cnblogs.com/hanyinglong/p/5387816.html

  f.ElasticSearch官网:https://www.elastic.co/products/elasticsearch/

2.准备安装文件

  a.工欲善其事必先利其器,通过上面简单的描述想必大家已经知道ElasticSearch是干什么的了,那么这时候我们就需要去使用它,而在用它之前则必须先将其安装,故而在这篇博客我将简单描述一下EasticSearch的安装,ElasticSearch_Head的配置,分词插件的配置。

  b. ElasticSearch的安装包,下载地址:https://www.elastic.co/downloads/elasticsearch,下载最新的tar包即可。

  c. ElasticSearch_Head配置包,下载地址:https://github.com/mobz/elasticsearch-head,下载最新的Zip压缩包即可。

  d.分词插件,下载地址:https://github.com/medcl/elasticsearch-analysis-ik,克隆源码进行操作。

  e.因Elasticsearch是基于java写的,所以它的运行环境中需要java的支持,在Linux下执行命令:java -version,检查Jar包是否安装,如果安装,则可以继续操作安装工作,否则安装java jar包,如何安装请参看博客:http://www.cnblogs.com/hanyinglong/p/5025635.html。(JDK安装7以上)

  f. 本次操作需要用到的软件以及系统如下:虚拟机(Vmware)、虚拟机中安装的Centos系统、Xshell、Xftp、上面的安装包、Git、Maven,至于如何使用它们我们下面会说到。

3.ElasticSearch安装

  a.通过上面简单的准备工作之后,现在已经拥有了可以安装和发布的环境,如果没有,请参考上面的说明,自行查询安装。

  b.使用XShell连接Centos,连接成功后使用命令跳转到local下面创建属于自己的文件夹kencery,在此文件夹下创建elasticsearch文件夹,命令如下;

    b.1  (1):cd usr/local/    (2):mkdir kencery    (3):cd kencery/   (4):mkdir elasticsearch  (5):cd elasticsearch/

  c. 然后使用Xftp将在准备安装文件中下载的Elasticsearch包复制到elasticsearch文件夹西面,如图所示:

    

  d. 将上传的的elasticsearch-2.3.1.tar.gz包解压,解压之后命名为:elasticsearch,至于安装包里面含有上面内容,请自行使用命令ls -l查看。

    d.1 tar -zxvf elasticsearch-2.3.1.tar.gz

    d.2 mv elasticsearch-2.3.1 elasticsearch

  e. 进入elasticsearch文件后运行脚本启动,命令如下:

    e.1 cd elasticsearch

    e.2 调用启动命令:./bin/elasticsearch(如果以root用户启动,正常情况下这里会报错)。

  f.在root账户下面调用启动命令出错的解决方案

    f.1 当使用root账户调用启动命令出现错误信息,错误提示信息如下:

      

    f.2 为什么会这样呢?这是因为处于系统安装考虑的设置,由于Elasticsearch可以接收用户输入的脚本并且执行,为了系统安全考虑,不允许root账号启动,所以建议给Elasticsearch单独创建一个用户来运行Elasticsearch。

    f.3 创建elasticsearch用户组以及elasticsearch用户,命令如下:

      groupadd elasticsearch

      useradd  elasticsearch(用户名) -g elasticsearch(组名) -p elasticsearch(密码)

    f.4 更改Elasticsearch文件夹以及内部文件的所属用户以及组为elasticsearch,修改完成之后如图所示:

      chown -R elasticsearch:elasticsearch elasticsearch

      

    f.5 切换到elasticsearch用户下,再次执行启动命令,如图所示,则说明启动成功

      

  g.Elasticsearch后端启动命令为:./bin/elasticsearch -d

  h.安装完成后使用IP访问

    h.1 当安装完成之后我们当然希望他在其他局域网内通过IP可以访问,可是执行:http://192.168.37.137:9200/,始终不能连接成功,而且centos下用localhost、127.0.0.1都能够连接成功。

    h.2 这时候我们就需要修改配置文件了,首先使用ifconfig查询你的linux的IP是多少,得到IP。

    h.3 跳转到Elasticsearch的config配置文件下,使用vim打开elasticsearch.yml,找到里面的"network.host",将其改为你刚才查询得到的IP,保存。

      cd elasticsearch/config/

      vim elasticsearch.yml

    h.4 重启ElasticSearch,然后使用http://192.168.37.137:9200/访问,如果连接不成功则需要考虑是不是端口的原因,配置端口,重启防火墙即可。

    h.5 使用http://192.168.37.137:9200/访问,访问结果如图所示:,则说明ElasticSearch安装成功。‘

      

    h.6 Elasticsearch安装完成之后,希望能有一个可视化的环境来操作它,那么下来配置:Elasticsearch Head

4.ElasticSearch_Head配置

  a.Elasticsearch Head是集群管理、数据可视化、增删改查、查询语句可视化工具,它的安装方式有两种,一种是使用命令安装,一种是下载包安装。

  b.命令安装

    b.1  cd /usr/local/kencery/elasticsearch/elasticsearch

    b.2  ./bin/plugin -install mobz/elasticsearch-head(*)

      提示错误,错误信息是:ERROR: unknown command [-install]. Use [-h] option to list available commands,这是因为Elasticsearch在2.0以上的版本将-install变成了install。

    b.3 故而执行命令 ./bin/plugin install mobz/elasticsearch-head即可。

    b.4 详细信息请看:https://github.com/mobz/elasticsearch-head下面的README.md文件。

  c.下载包安装

    c.1 在准备下载包的时候我们已经将包下载到电脑本地了,所以讲下载下来的包(elasticsearch-head-master)解压elasticsearch-head-master文件夹。

    c.2 在Elasticsearch的安装的plugin下创建目录head

      cd /usr/local/kencery/elasticsearch/elasticsearch/plugins/

      mkdir head

    c.3 跳转到head文件夹下,将刚才解压的elasticsearch-head-master文件夹下的所有文件拷贝到head目录下,如图所示:

      

    c.4 重新启动ElasticSearch,使用http://192.168.37.137:9200/_plugin/head/访问浏览器,如图所示,则说明安装成功。

      

  d.安全问题

    如图就可以看出,该插件可以对数据进行任何增删改查,所以不建议在正式环境中使用它,如果使用,也必须限制规定的IP能够使用。

5.分词插件配置

  a. IK Analyzer是一个开源的,基于Java语言开发的轻量级的中文分词工具包,最初的时候,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件,从3.0版本之后,IK逐渐成为面向java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现,IK实现了简单的分词 歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化

  b. 当安装完Elasticsearch之后,默认已经含有一个分词法,就是standard,这个分词法对英文的支持还可以,但是对中文的支持非常差劲,如图所示:

    http://192.168.37.137:9200/_analyze?analyzer=standard&pretty=true&text=helloworld,%E6%AC%A2%E8%BF%8E%E6%82%A8

    

  c.安装IK分词法。

    c.1 首先通过Git将源码下载下来,打开git客户端输入命令:git clone https://github.com/medcl/elasticsearch-analysis-ik,如果没有安装git,则直接下载zip包。

    c.2 下载之后进入到下载的文件夹下,如图所示:

      

    c.3 因为其源码使用的maven开发,故而使用maven编译项目,如果没有安装maven,参考博客安装:http://www.cnblogs.com/hanyinglong/p/5030907.html,命令提示符以管理员的身份运行,如图所示:

      

  编译成功在下面会提示Succes。

    c.4 打开编译后的target\releases,解压压缩包,然后进入解压的压缩包里面可以看到几个jar包和配置文件。

  d.在Elasticsearch的安装的plugin下创建文件夹ik

    cd /usr/local/kencery/elasticsearch/elasticsearch/plugins/

    mkdir ik

  e. 跳转到ik文件夹下,将c.4中所说的文件拷贝到ik文件夹下,如图所示:

    

f. 重新启动ElasticSearch,使用http://192.168.37.137:9200/_analyze?analyzer=ik&pretty=true&text=helloworld,%E6%AC%A2%E8%BF%8E%E6%82%A8访问浏览器,如果分词,则说明配置成功。

    

每天一点点,都是进步

如果文章哪里存在问题,欢迎大家指出来,我会在第一时间修改。

时间: 2024-11-06 11:51:39

Elasticsearch初步使用(安装、Head配置、分词器配置)的相关文章

ElasticSearch(四)查询、分词器

正向索引 正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档. 这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面.若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除.但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下. 尽管正排表的工作原理非常

搜索技术:solr+IK分词器配置

一.搭建solr服务器1.Apache官网下载solr,本次使用4.9.1版本2.解压solr,找到example,将webapps中的war包复制到tomcat的webapps下3.运行tomcat,关闭tomcat,得到解压后的solr文件夹,删除war包4.将example\lib\ext\*.jar复制到解压后的solr\WEB-INF\lib中5.将example文件下solr文件夹的地址放到步骤6的/put/your/solr/home/here位置6.修改web.xml <env-

IK中文分词器配置

solr本身对中文分词的处理不是太好,所以中文应用很多时候都需要额外加一个中文分词器对中文进行分词处理,ik-analyzer就是其中一个不错的中文分词器. 一.版本信息 solr版本:4.7.0 需要ik-analyzer版本:IK Analyzer 2012FF_hf1 ik-analyzer下载地址:http://code.google.com/p/ik-analyzer/downloads/list 上面的连接有的人可能无法下载(需要翻墙) 下面是csdn的下载地址 http://dow

ElasticSearch(十八)初识分词器

1.什么是分词器 作用:切分词语,normalization(提升recall召回率),如给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换,单复数转换),分词器 recall,召回率:搜索的时候,增加能够搜索到的结果的数量 3个功能: character filter:在一段文本进行分词之前,先进行预处理,比如说最常见的就是,过滤html标签(<span>hello<span> --> hello),& -

Elasticsearch单机安装_集群搭建_索引基本操作_Head插件安装与基本操作_ik分词器配置_logstash实现数据同步_教程

一.Elasticsearch单机安装 1.将es安装包传到服务器上 这是安装包 这里我是用的是WinSCP上传工具,上传到/home/plugins文件下. 进入Xshell,验证一下是否上传成功. 2.创建es目录 mkdir -p /usr/local/es(es1,es2,es3暂时不要安装,确保第一步es下面目录是空的,由于已经安装过,这三个文件留着了) 2.解压文件至 es 目录 tar -zxvf /home/plugins/elasticsearch-2.4.5.tar.gz -

ES中增加大小写不敏感的分词器配置-转

1. 在50和52的 config/elasticsearch.yml 中增加以下配置 index:  analysis:    analyzer:      string_lowercase:        tokenizer: keyword        filter: lowercase 2. 重启es 3. 创建一个测试 index: test {    "mappings" : {        "type1" : {            "

微信公众平台——基础配置——务器配置:PHP版

在自己的服务器上新建一个空白php文件,输入以下任一版本的代码,如下: 版本一: <?php $token = "dige1994"; $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $echostr = $_GET["echostr"]; $tmpArr = arra

ElasticSearch中分词器组件配置详解

首先要明确一点,ElasticSearch是基于Lucene的,它的很多基础性组件,都是由Apache Lucene提供的,而es则提供了更高层次的封装以及分布式方面的增强与扩展. 所以要想熟练的掌握的关于es中分词方面的知识,一定得先从Lucene抓起,否则只会是丈二和尚摸不着头脑,当然我们大多数开发者只关注于怎么用,偏底层的东东,也没有太多时间去深究,这也有情可原,遇到问题再去探究,也何尝不是一种办法,如果有时间,还是建议看看Lucene基础的知识. 在ElasticSearch或Solr中

[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://www.cnblogs.com/wang-meng/p/5814798.html 8, 打开浏览器查看solr可视化界面 到了这里solr就配置好了, 可是我们的IK 分词器还没有配置呢, 如果不配IK分词器的话 它是怎样分词的呢? 我们就来先看一下:  每个字都分成了一个词, 这当然不是我们想要的结果