ElasticSearch入门

1.简单介绍:
ElasticSearch是用java开发的,并作为Apache许可条款下的开放源码发布,是当前流行企业级的搜索引擎,他是一个基于Lucene的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于ResTful web 接口,设计用于云计算中,能够达到实时搜索,保证稳定,可靠,快速,安装使用方便。
2.为什么要使用全文检索:
首先用户访问我们的主页的时候,不会特别去一页一页的浏览我们所需要的东西,这时就需要有一个搜索引擎来方便用户直接搜索自己想要的商品来购买,但是由于商品的数量及其多,而且他们的分类也及其繁杂,面对这种复杂的搜索业务和数据量,使用传统数据库的搜索就会显得力不从心,而搜索系统中重要的核心就是要正确的显示用户想要的商品,并且进行合理的过滤,尽快的完成这一交易,方便客户也节省客户时间,我们就需要用到全文检索技术
3.理解索引结构:
ElasticSearch入门
逻辑部分是一个倒排索引表:
1.将要搜索的文档内容分词,所有不重复的词组成分词列表。
2、将搜索的文档最终以Document方式存储起来。
3、每个词和docment都有关联。

优点:
(1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上
(2)将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;
(3)开箱即用的,部署简单
(4)全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理
下表是Elasticsearch与MySQL数据库逻辑结构概念的对比
Elasticsearch 关系型数据库Mysql
索引(index) 数据库(databases)
类型(type) 表(table)
文档(document) 行(row)

ElasticSearch的安装:
下载ElasticSearch 6.5.2版本
https://www.elastic.co/downloads/past-releases/elasticsearch-6.5.2
资源\配套软件中也提供了安装包
无需安装,解压安装包后即可使用
在命令提示符下,进入ElasticSearch安装目录下的bin目录,执行命令
elasticsearch
即可启动。
我们打开浏览器,在地址栏输入http://127.0.0.1:9200/ 即可看到输出结果
{
“name” : “uxxprtP”,
“cluster_name” : “elasticsearch”,
“cluster_uuid” : “busVHkVASnW5x2TAwYKnkw”,
“version” : {
“number” : “6.5.2”,
“build_flavor” : “default”,
“build_type” : “zip”,
“build_hash” : “9434bed”,
“build_date” : “2018-11-29T23:58:20.891072Z”,
“build_snapshot” : false,
“lucene_version” : “7.5.0”,
“minimum_wire_compatibility_version” : “5.6.0”,
“minimum_index_compatibility_version” : “5.0.0”
},
“tagline” : “You Know, for Search”
}

1.3 插件安装
1、安装图形化界面head插件
解压elasticsearch-head-master.zip到任意目录
2、安装nodejs程序
Grunt和所有grunt插件都是基于nodejs来运行的
3、grunt安装为全局命令
Grunt是一个基于JavaScript上的一个很强大的前端自动化工具基于NodeJS用于自动化构建、测试、生成文档的项目管理工具。
cmd控制台中输入: npm install -g grunt-cli
设置允许elasticsearch跨越访问
修改elasticsearch-5.6.8\config下的elasticsearch.yml文件:

http.cors.enabled: true # 开启跨域访问支持,默认为false
http.cors.allow-origin: “*” # 跨域访问允许的域名地址
cmd命令进入elasticsearch-head-master目录,启动head图形化界面程序:
grunt server
如果grunt server不好用:
cmd进入到head目录中执行npm install

4、测试查询
http://localhost:9100