ElasticSearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。ElasticSearch是用Java开发的,并作为Apache许可条款下的开放源代码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
(1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司,也可以运行在单机上;
(2)将全文搜索、数据分析以及分布式技术,合并在了一起;
(3)开箱即用,部署简单;
(4)全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理。
ElasticSearch | Mysql |
---|---|
索引(index) | 数据库(databses) |
类型 (type) | 表(table) |
文档 (document) | 行(row) |
下载ElasticSearch
无需安装,解压安装包后即可使用
在命令提示符下,进入ElasticSearch安装目录下的bin目录,执行命令
elasticsearch
启动之后开启了9300(java开发用)和9200端口
访问localhost:9200看到数据就是已经正常启动
创建索引库(以put方式提交)
http://localhost:9200/{索引库名称}
新建文档(以post方式提交,自动生成id)
http://localhost:9200/{索引库名称}/{类型名} (article(弱类型))
body:
{
"title":"",//标题
"content":""//内容
}
查询所有(以get方式提交)
http://localhost:9200/{索引库名称}/{类型名}/_search
修改(以put方式提交)
http://localhost:9200/{索引库名称}/{类型名}/{_id}
body:
{
"title":"",//标题
"content":""//内容
}
新建文档(以put方式提交,制定id)
http://localhost:9200/{索引库名称}/{类型名}/{id}
body:
{
"title":"",//标题
"content":""//内容
}
按id查询(以get方式提交)
http://localhost:9200/{索引库名称}/{类型名}/{id}
基本匹配查询(以get方式提交)
http://localhost:9200/{索引库名称}/{类型名}/_search?q={查询字段}:{查询内容}
模糊查询(以get方式提交)
http://localhost:9200/{索引库名称}/{类型名}/_search?q={查询字段}:*{查询内容}*
删除文档(以delete方式提交)
http://localhost:9200/{索引库名称}/{类型名}/{id}
下载地址
(1)解压后将文件夹重命名为ik
(2)将ik文件夹拷贝到elasticsearch/plugins目录下
(3)重新启动,即可加载IK分词器
IK提供了两个分词算法ik_smart和ik_max_word
其中ik_smart为最少切分,ik_max_word为最细粒度划分
(1)最小切分
http://localhost:9200/_analyze?analyzer=ik_smart&pretty=true&text={{需切词的内容}}
(2)最细粒度划分
http://localhost:9200/_analyze?analyzer=ik_max_word&pretty=true&text={{需切词的内容}}
(1)进入elasticsearch/plugins/ik/config目录下
(2)新建custom.dic文件(UTF-8格式),编辑词条内容
(3)修改IKAnalyzer.cfg.xml(在ik/config目录下)
<properties>
<comment>IK Analyzer 扩展配置comment>
<entry key="ext_dict">custom.dicentry>
<entry key="ext_stopwords">entry>
properties>
(4)重新启动elasticsearch