ElasticSearch简介
Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速
度去处理大规模数据。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分
布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发
的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用
于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
ElasticSearch三种操作方式
1.通过RestAPI
2.通过Head插件
3.通过Java代码(SpringDataElasticsearch)
搜索是从索引库查询数据。
目前搜索分两大类,站内搜索,全网搜索。
---》网上的资源:网页,博客,视频,音乐。(百度,谷歌)
----》本公司数据库中的数据。(站内搜索:淘宝,天猫,京东)
数据的索引和分词操作。
搜索公司爬虫只爬:标题,简介,图片,来源。
特点:
(1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公
司;也可以运行在单机上
(2)将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;
(3)开箱即用的,部署简单
(4)全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理
体系结构:
Elasticsearch与MySQL数据库逻辑结构概念的对比
Elasticsearch 关系型数据库Mysql
索引(index) 数据库(databases)
类型(type) 表(table)
文档(document) 行(row)
单列索引。
复合索引
B+二叉树
创建索引的过程,就是构建二叉树的过程。
服务端口是9300
9200是Java调用elasticSearch以外的所有数据。
采用put请求,创建索引
http://localhost:9200/crmm_elasticsearch
采用post请求,创建类型
http://localhost:9200/crmm_elasticsearch/article/
查询所有
http://127.0.0.1:9200/crmm_article/article/_search
@Id
private String id;
//是否索引,就是看该域是否能被搜索
//是否分词,就表示搜索的时候是整体匹配还是单词匹配
//是否存储,就是是否在页面上显示。
@Field(index = true)
private String title;
@Field(index = true)
private String content;
@Field
private String state;