Elasticsearch安装与配置
数据全文检索是企业应用软件应要提供的一个重要功能。关系数据库(例如,Oracle,SQL Server或MySQL等)虽然提供了强大的数据管理,存储, 查询和事务处理能力,但是全文检索功能并不出色,与百度或谷歌等全文检索功能相比还有较大的差距。
在全文检索功能方面,Ebaas平台之前的版本提供了基于关系数据库的全文检索。从Ebaas 7.3.0版本开始,提供了基于Elasticsearch(简称ES)的全文检索功能。基于ES的全文检索功能比基于数据库的全文检索功能有很大的改进,可以提供类似百度和谷歌的良好搜索体验和更快的搜索速度,使得用户能方便、快速并精准地找到自己所关心的数据。
接下来的几个教程主要介绍如何配置和使用基于ES的全文检索。
ES是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是一个流行的全文检索引擎。能够达到实时搜索,稳定,可靠,快速,安装使用方便,零配置和完全免费。如果您有兴趣可以先去了解下ES的一些基本概念,可以到Elasticsearch官网上查看资料,这里就不一一赘述了。
ES并不等同于关系数据库,主要用于创建数据索引(Index)和搜索。因而,Ebaas平台还是使用关系数据库作为主要数据源,而使用ES保存索引和全文检索。Ebaas平台与ES进行了无缝的集成,使得您只要进行简单的配置就能使用ES强大的全文检索功能查询Ebaas平台中保存的数据,而无需进行任何开发工作。
ES软件不包含在Ebaas平台的安装包中,需要单独安装(可以在Ebaas平台之前或之后安装)。这个教程我们介绍ES的安装和配置步骤。
ES的安装
ES的安装很简单,这里我们介绍在Windows上安装ES。
- 确保机器上已经安装了Java 8以上版本
- 下载ES (要求6.2.3以上版本):官网下载地址:https://www.elastic.co/downloads/elasticsearch
- 将下载后的文件解压到指定的目录(例如: C:/eshome/elasticsearch-6.2.3),后续称为ES安装目录
- 双击“{ES安装目录}/bin/elasticsearch.bat”启动ES服务器
- 验证ES服务器是否启动,可以使用浏览器访问 http://localhost:9200, 会在浏览器显示类似下列结果(如果ES是安装在本地电脑上)。
{
"name" : "Dqdicw4",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Q_gr2daSQ2KQu4aPrh9pVQ",
"version" : {
"number" : "6.2.3",
"build_hash" : "c59ff00",
"build_date" : "2018-03-13T10:06:29.741383Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
ES附带了很多合理的默认值,它安装好了就可以使用了。对于我们的教程,使用ES的默认设置就够用了。对于实际的项目和不同的检索需求,还可以利用ES更多高级的功能,可以很灵活地进行配置,根据自身需求来定制属于自己的全文搜索功能。具体请参考ES官网的资料。
安装ik中文分词插件
Elasticsearch本身自带分词器standard,但对中文的支持不是很好。比如针对“我是中国人”,会分词成“我”、“是”、“中”、“国”、“人”。这显然不是我们想要的结果。我们更希望“中国”、“中国人”这样的分词。 因此,我们需要中文分词插件。这样会有更好的中文搜索效果。
IK Analysis for Elasticsearch是一款开源的能符合我们需求的中文分词插件。IK中文分词插件需要另行安装。安装步骤很简单:
- 首先确保你已经下载和解压了ES 6.2.3以上的版本
- 使用CMD命令进入ES的安装目录,并使用elasticsearch-plugin来安装,安装命令如下:
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.zip
安装好IK分词插件后,要重启Elasticsearch。
另外,为了方便测试和管理ES,建议您从“Chrome Web Store”下载和安装“Elasticsearch Head”web插件,用于查看索引和查询数据。
配置ES服务器URL
开启Ebaas基于Elasticsearch的全文检索模式只需要在Ebaas的配置文件中配置ES的服务器URL。如果您的ES安装在本地机器上,默认的URL为: http://localhost:9200。
使用文本编辑器打开C:\Program Files\Ebaas\Config\Elasticsearch_config.xml文件,将“ElasticsearchURL”参数设置为:http://localhost:9200 。如果您安装了IK中文分词插件,这需要去掉“Ananlyzer”和“Search-Ananlyzer”的注释,使得Ebaas平台将创建索引时使用IK分词插件。如下所示。
<?xml version="1.0" encoding="utf-16"?>
<Settings>
<add key="ElasticsearchURL" value="http://localhost:9200" />
<add key="analyzer" value="ik_max_word" />
<add key="search_analyzer" value="ik_max_word" />
</Settings>
保存配置文件后,重启Ebaas服务器即可。
接下来,使用所推荐的浏览器登陆到(http://localhost:8080) => 登陆到Web界面后,会看到页面的上端出现了全文检索的查询框,见下图。表示基于ES的全文检索已经开启。但是还搜索不到任何数据,因为我们还没有配置和创建任何索引。
下一个教程将介绍如何配置和创建ES的索引。