ElasticSearch(分布式搜索引擎)

ElasticSearch(分布式搜索引擎)

一、什么是RestFul?

1.1 基本概念

RestFul:软件架构设计风格(一个架构的设计如果遵循Rest设计原则,那么称RestFul)

Rest:资源的表现层状态转化(设计思路)

资源:网络中的一切事物(图片、音乐、数据库记录)

表现层:将资源具体呈现出来的形式

状态转化:如果客户端想操作服务器的资源时,使资源发生某种状态转变

1.2 原则

1.使用Rest的url代替传统的url

传统:localhost:8080/项目名/user/findOne?id=22

Rest:localhost:8080/项目名/user/findOne/22

2.四种请求动词对象服务器的四种操作(CRUD)

GET:查询

POST:更新 | 添加

PUT:更新 | 添加

DELETE:删除

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#000000">示例:</span>
    <span style="color:#555555">@Controller</span>
    <span style="color:#555555">@RequestMapping</span>(<span style="color:#aa1111">"user"</span>)
    <span style="color:#770088">public</span> <span style="color:#770088">class</span> <span style="color:#0000ff">UserController</span>{
        <span style="color:#aa5500">/**</span>
         <span style="color:#aa5500">* 演示RestFul风格请求查询</span>
         <span style="color:#aa5500">*/</span>
        <span style="color:#555555">@GetMapping</span>(<span style="color:#aa1111">"findOne/{id}/{name}/"</span>)
        <span style="color:#555555">@ResponseBody</span>
        <span style="color:#770088">public</span> <span style="color:#008855">String</span> <span style="color:#000000">findOne</span>(<span style="color:#555555">@PathVariable</span>(<span style="color:#aa1111">"id"</span>)<span style="color:#008855">String</span> <span style="color:#000000">id</span>,
                              <span style="color:#555555">@PathVariable</span>(<span style="color:#aa1111">"name"</span>)<span style="color:#008855">String</span> <span style="color:#000000">name</span>){
            <span style="color:#770088">return</span> <span style="color:#aa1111">"演示restful风格传参"</span>;
        }
    }
<span style="color:#000000">请求地址:</span>
    <span style="color:#000000">http</span>:<span style="color:#aa5500">//localhost:8080/项目名/user/findOne/21/张三/</span></span></span>

二、什么是全文检索?

2.1 概念

全文检索:是指计算机程序扫描文章的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。

关于全文检索,我们要知道

  1. 只处理文本

  2. 不处理语义

  3. 搜索时英文不区分大小写

  4. 结果列表中有相关的排序

三、ElasticSearch

3.1 概念

简称ES,是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

四、ES的安装配置

4.1 安装前提

安装配置JDK1.8+(步骤省略)

4.2 安装ES

注意:ES安装配置时不允许使用root账户,只能使用普通用户

<span style="background-color:#f8f8f8"><span style="color:#333333"><span style="color:#aa5500"># 1.下载ES linux版本安装包 </span>
    https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-8-0
<span style="color:#aa5500"># 2.创建用户组及普通用户并以普通用户身份进行登录</span>
<span style="color:#aa5500"># 3.上传es安装包到linux</span>
<span style="color:#aa5500"># 4.使用tar -zxvf 解压上传的安装包</span>
​
<span style="color:#aa5500">#权限不足问题解决方案:</span>
<span style="color:#3300aa">chown</span> <span style="color:#0000cc">-R</span> zhangsan:u         /usr/local/software/elasticsearch-6.8.0
<span style="color:#3300aa">chown</span> <span style="color:#0000cc">-R</span> 用户:用户组   文件的路径
​
<span style="color:#aa5500"># 5.安装完成后切换到安装目录的bin目录,执行脚本 .elasticserach执行前台启动即可</span>
<span style="color:#aa5500"># 6.web访问端口:9200    tcp端口:9300(java进行连接)</span>
<span style="color:#aa5500"># 7.通过curl http://localhost:9200 查看网页源码测试是否可以访问</span></span></span>

4.3 开启远程连接权限

注意:ES服务默认启动是受保护的,只允许本地客户端连接,如果需要通过远程客户端访问,必须开启远程连接

  1. 开启ES远程访问

    进入es安装目录的config目录下,使用vim指令编辑elasticSearch.yml文件,将原来的network.host修改为 0.0.0.0

  2. 进入安装目录的bin目录,执行./elasticsearch 脚本启动es

  3. 重新启动后会出现以下错误

    <span style="background-color:#f8f8f8"><span style="color:#221199">ERROR</span><span style="color:#555555">: [</span>3<span style="color:#555555">]</span> bootstrap checks failed
    <span style="color:#555555">[</span><span style="color:#221199">1]</span><span style="color:#555555">: </span>max file descriptors <span style="color:#555555">[</span>4096<span style="color:#555555">]</span> for elasticsearch process is too low<span style="color:#555555">,</span> increase to at least <span style="color:#555555">[</span>65536<span style="color:#555555">]</span>
    <span style="color:#555555">[</span><span style="color:#221199">2]</span><span style="color:#555555">: </span>max number of threads <span style="color:#555555">[</span>3836<span style="color:#555555">]</span> for user <span style="color:#555555">[</span>wuzhaobin<span style="color:#555555">]</span> is too low<span style="color:#555555">,</span> increase to at least <span style="color:#555555">[</span>4096<span style="color:#555555">]</span>
    <span style="color:#555555">[</span><span style="color:#221199">3]</span><span style="color:#555555">: </span>max virtual memory areas vm.max_map_count <span style="color:#555555">[</span>65530<span style="color:#555555">]</span> is too low<span style="color:#555555">,</span> increase to at least <span style="color:#555555">[</span>262144<span style="color:#555555">]</span></span>
  1. 解决错误[1]

    <span style="background-color:#f8f8f8"><span style="color:#aa5500"># 4-1:使用root用户修改系统配置</span>
    <span style="color:#aa5500"># 4-2:vim /etc/security/limits.conf 在文件末尾添加如下配置:</span>
    ​
    *                soft    nofile          <span style="color:#116644">65536</span>
    *                hard    nofile          <span style="color:#116644">65536</span>
    *                soft    nproc           <span style="color:#116644">4096</span>
    *                hard    nproc           <span style="color:#116644">4096</span>
    <span style="color:#aa5500"># 4-3:退出终端,然后再进入终端,检测配置是否生效,逐条执行以下命令即可,如果检测的信息和[4-2]中配置的信息一致说明配置正确</span>
        ulimit <span style="color:#0000cc">-Hn</span>
        ulimit <span style="color:#0000cc">-Sn</span>
        ulimit <span style="color:#0000cc">-Hu</span>
        ulimit <span style="color:#0000cc">-Su</span>
        </span>
  2. 解决错误[2]

    <span style="background-color:#f8f8f8"><span style="color:#aa5500"># 5-1:使用root用户修改系统配置</span>
    <span style="color:#aa5500"># 5-2: vim /etc/security/limits.d/20-nproc.conf</span>
    <span style="color:#aa5500"># 5-3: 将 * 修改为启动es的用户名</span></span>
  3. 解决错误[3]

    <span style="background-color:#f8f8f8"><span style="color:#aa5500"># 6-1:使用root用户修改系统配置</span>
    <span style="color:#aa5500"># 6-2: vim /etc/sysctl.conf</span>
    <span style="color:#aa5500"># 6-3: 在sysctl.conf配置文件中加入下面配置保存退出即可</span>
        vm<span style="color:#0000ff">.max_map_count</span><span style="color:#981a1a">=</span><span style="color:#116644">655360</span>
    <span style="color:#aa5500"># 6-4:输入sysctl -p 检测是否配置正确</span>
    <span style="color:#aa5500"># 6-5:关闭终端再次进入终端</span></span>
  4. 注意:防火墙ssh.xml中记得开放es端口,否则还是无法远程连接,配置完开发端口后记得重启防火墙。

    <span style="background-color:#f8f8f8">通过外部浏览器访问es,出现下面内容说明远程连接已经开启
    {
      "name" : "pl1UXjc",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "Y4i82Cs6RgW7mfbohZy2qg",
      "version" : {
        "number" : "6.8.0",
        "build_flavor" : "default",
        "build_type" : "tar",
        "build_hash" : "65b6179",
        "build_date" : "2019-05-15T20:06:13.172855Z",
        "build_snapshot" : false,
        "lucene_version" : "7.7.0",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
      },
      "tagline" : "You Know, for Search"
    }</span>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值