00:00
接下来我们再来说一下分词,那我们经常说分词,它是我们search里边来做全文检索的核心,分词的作用就是将一个完整的一大段话分成一个一个的单词,然后利用单词的这些相关性匹配,最终完成我们的全文检索功能。那分词呢,在我们ES中是使用分词器来进行的,就是我们这个talking another,这分词器呢接收一个字符流,我们这一传话,可以把这串话呢分割成我们一个一个的,我们称为叫词元,也就是单词,然后利用这单词再来进行匹配。比如我们用默认的分词器,我们可以将这三个单词,这一句话我们分别分成咱们这三个单词,那如果要来检索的话呢,只要有一个单词匹配上我们的检索条件,我们都可以来给它返回我们当前的这个相关记录,那么ES里边呢,也有非常多的内置的这些分词器,比如举个例子,我们来看官方文档里边那分词器呢,我们就来参见我们。
01:00
有一个lyze这个章节,这里边呢,有一个叫分词器,那我们所有的这个语言分词默认用的都是这个标准分词器,这个标准分词器呢,我们来打开它作用,比如我们在这举了一个例子,我们给了一串文本,有这么一串话,然后呢,Analyzze,我们来指定使用standard的这个标准分词器来进行分词,最终分出来就是这么一个单词,当然我们也可以把这句话来测试一下,我们想来测试我们分词都是怎么分的,来发送posts请求,按照文档叫analyze,好杠analyze,然后呢,我们来进行分词,那先来指定分词器,分词器呢有很多,我们现在先用这个标准的分丝器standard,好把这个复制过来。然后呢,我们再来指定我们要分析的这段话,我们把这个test直接复制来,CTRLCCTRLV好走,那我们看到呢,这段话被我们分割出来的这些词语,那就the are,包括quick等等等等,这都是呢,一个个的单词,相当于利用空格把它分割开了,当然后边的这个点句号并没有当成一个单词或所属于某个单词,这是我们说的这个分词,那这种分词规则呢,肯定不好用,比如我们举一个例子,那这个文本变成了呢,比如上硅谷电商项目,那如果按照我们人类的自然语言分词,那可能应该是上硅谷是一个单词儿,电商一个单词项目一个单词儿,那么我们来可以看一下这个分词,结果他会呢,把这个一个一个的汉字单独全部提取出来。
02:40
而且呢,ES中默认的这些分词器都是来支持我们这些英文情况的这些分词,对于我们中文,我们还要额外的去来安装我们自己的分词器,这样呢,它就能识别我们中文的一个一个单词了,那我们分词器呢,我们一般都选择开源的这个I开分词器,这I开分词器呢,GI地址我们来复制一下CTRLC。
03:03
那想安装这个I开分词器,首先呢,我们得选中这个分词器的版本,这个分词器的版本我们来看它的release。它呢是跟我们EAS search的发布版本走的,那我们现在安装的这个ES现在是742,我们就得在这儿来找到742版的我们这个分磁器,然后呢把它安装上来,那安装这个分磁器呢,也非常简单,参照我们的文档,我们首先呢应该进入ES容器的内部。因为ES呢是用docker装的,它的这个容器内部呢有一个plugs目录,然后呢,我们下载来我们的这个分词器,把它解压到我们这个plugs目录里边的位置就行了,其实我们都不用进到容器内部,因为我们以前在装ES的时候,我们直接将容器内部的plugs目录都映射到外边了,你们也可以来看一下,好,我先来切到root用户使用vagrant。Docker PS们现在正在运行的EL search84C没问题,我们来看,我们当时装的时候,我们CD到my data里边,我们里边呢有一个elas和search文件夹,CD到这个文件夹里边,我们把这个plugs目录已经映射出来了,所以呢,我们相当于把我们I开分词器下载来放到这儿就行了。当然我们也可以进入内部来看一下,使用docker ex e命令杠,It交互模式,我们进入哪个内部呢?我们只准我们这个elastic search容器的ID84CA好,我们比如说就叫84CA好,它的这个稍微长一点就是84CA,只要跟别人能区分。
04:40
然后呢,我们是进入它的B音半式控制台回车,这样呢,我们看到我们现在这一块切换root们现在切换到84CA这个容器里边了,我们现在在EL search这个文件夹,这PWD给大家看一下,我们当前呢,是在docker容器内部,我们elas search这个容器内部的user share elas search这个文件夹里边,LS看一下这个文件夹里边呢,我们的这个data映射到外边了,包括config,包括我们的plugs,这些呢,我们其实之前都映射到了这个EL search的外边,哎,我们这三个文件夹,所以呢,我们也可以CD到plugs里边,Plug里边LS里边没有任何东西,我们需要呢,将这个分词器下载过来,好,我直接复制这个链接地址,复制链接地址我们在这儿使用命令叫w get,好,我们来粘贴一下回车。
05:36
诶,我发现这个w get命令啊,他没找到,这由于我们这个虚拟机太纯净了,就一个核心功能里边的好多我们都没安装w get命令,没找到那行我们就不操作容器了,我们直接退出,我们退出这个容器,使用exit命令退出容器,我们现在呢,来到我们自己映射的外边的这个文件夹里边,我们CD到我们的plugs里边,好,我们看我们外部的这个w get肯定也是没准备好的,所以呢,我们想要用这个,我们首先就得安装我们这个w get,亚盟install w get我们稍等进它进行来联网安装。
06:13
我发现它这呢报了错误,是我们这个host主机地址no不知道,那相当于呢,我们这个虚拟机啊,现在都连不通外网,比如我们来P100ID度点com走,那这一块提示呢,Name or service not no,说明这个百度ping不通,那去外网下载东西呢,它下载不来,包括我们来看这个IP con,哎,我们Linux里边叫I conflict,这太纯净了,连这些命令都没有,那我们就用IPA drr,那现在呢,看到我们的这个Linux虚拟机的这个地址,我们来找一下,我们这个是56.10,剩下的呢,这些都是docker docker的这些容器的地址。那也就是我们这个56.10,我们这个虚拟机呢,是拼不通外网的,但是我们之前安装刀客镜像什么的都是没问题的,包括这个界面怎么整的。
07:06
也有点变色了,好,我们以后呢,再不用这个CMD窗口我们来操作我们的Linux了,这wa SSH这进来挺麻烦的,我们直接开启我们Linux的root访问权限,我们使用我们专业的工具X shell,我们来连接它,那这个工具呢,我们也给大家安装,放在了我们这个鼓励商城软件里边,大家把这个X shel呢一安装,把这两个都已安装,下面这个呢,是我们连接Linux的命令行工具,上面这个可以给Linux服务器里边上传文件的工具,那么以后就用它来操作Linux,那操作之前呢,由于我们是使用want创建到我们的这个虚拟机,它默认呢,没有给我们开启root权限,包括一些网卡设置都是他默认的,所以呢,我们可以先来开启root权限。Root权限的这个远程访问呢,大家可以参照我们分布式基础,咱们这个基础片里边来讲解,Linux安装的时候,在最下边我们有一个密码登录的方式,因为默认呢,Vagrant是没有开启我们密码登录功能的,所以呢我们需要使用这个命令VI,我们修改一下SH连接我们这个配置,我们把这一块复制过来。
08:14
好,我们在我们的这个虚拟机这好我们来修改一下走,那在这个配置里边呢,我们输入I进入插入模式,大家看到我们这一块呢,是insert插入模式,然后呢,主要一直往下走,下边呢,有一个基于密码模式的,咱们这个认证,那一直在下边来看一下,有一个password also,它呢是一个node,来给它改成yes,好,ESC退出冒号WQ保存并退出,把这个配置修改了以后呢,接下来我们重启一下我们的这个SHSH服务就行了,那如果不进行这一步,我们的那个工具连不上,因外G呢创建的虚拟机默认是使用免密连接的。好,把这一块配完以后,我们使用我们的工具来连,我们来新建一个我们的虚拟机,我们来写一个名字叫电商项目的虚拟机,我们是192.16 8.56.10。
09:11
我们得点击一个确定来连接我们电商的虚拟机,我们登录的用户名,我们直接使用root来登就行了,好,Root用户的密码呢,默认也叫warant,我们在这让他记住密码,点击确定,我们现在登记了我们的虚拟机,我们就使用它吧,现在我们说的这个ping不通外网的情况,PING100度。点。com,我们可以来修改网卡,当然最简单的方式,我们直接呢,将这个文件我们自己下载来,我们给它传到这个Linux虚拟机上,我们在这呢给它下载,那上传呢,正好用我们安装的那个工具,那安装完了,在这一块有一个文件传输点开。那两个软件呢,都得安装,然后进来以后呢,我们就直接给它放进来,好,我们来点进来放到哪呢?我们直接放到my data search plugs这个目录。
10:06
我们来找到我们下载好的这个压缩包走。把这个压缩包呢,我们全部来拖进来,放到我们指定的这个位置。我们把它放到这儿。走,那这呢就上传上来了,而且呢,由于我们是做的映射,所以呢,相当于外边我们来看一下LPWD,我们给外边上传的plugs里边上传的这个zip,如果我们进到doer容器里边,那我们就不用它看了,来我们拿它来操作Linux,把这个字体呢给大家放大一下。来调成12。我来进到它的这个内部,比如我们来docker PS,我们现在e search 84C好,我们来进来docker ex e-I,我们的84CA好。我们进到它的B办走,那我们PWD,我们现在看到是在容器内部的user share这个search里边,它里边呢,也有我们的plugs目录,我们直接CD到plugs目录LS,我们看到只要外边有的,里边也会映射上,诶也是非常简单,所以我们在docker安装这些软件的时候呢,我们都做好外部的挂载就行了。
11:23
那么还是CD到我们的my data里边,My data search,我们的plug里边行I分析器呢,我们这个下载完了,下载完以后呢,接下来我们就要解压,我们使用解压命令on zip,直接将我们下载的这个文件解压出来就行了,好,我们现在来on zip一下,这个上传完了就先退出来到我们这一块,我们来on zip来解压我们的as search这个文件,然后发现这个onip这个命令呢,也没有安装,行了,我们都先不安装了,我们直接用这个文件工具把它呢自己也解压。
12:02
我们直接将这个东西解压以后传输到plugs里边,好,我把它直接删除了,那下一节课呢,把这个虚拟环境完全给它搭好,该装的工具以及网络呢,我们都弄通,那现在先把这个装上,那来到我们下载来的这个文件里边,我们之前下载的这个elastic search文件,我来找一下。指定让他解压到我们指定的这个文件夹,我们给他指定一个文件夹,我们比如解压到桌面,我们指定这个文件夹名就叫IK。夹到这儿确定。立即解压。那么把这个X分子器的这个文件解压完了以后,接下来将我们整个这个解压完成后的文件夹拖到plugs目录里边走。那拖进来,我们整个上传完以后,我们相当于就装上了我们的IK分词器,我们LS看一下文件夹呢,这也有LL,它整个文件夹权限呢,我们也可以给他改一下ch mod-R777,我们来提连修改,将I开整个文件夹的权限我们都改掉。
13:14
变为RWX,可读可写可执行。现在我们进到docker容器内部,Docker PS,我们看as search这个内部,我们来docker exec-I,我们的84CA。我们进到他的兵,但是控制台。诶,少打了一个H。那么现在呢,PWD,我们现在在容器内部的里边,那CD到它的plugs目录里边,我们也能看到,这有一个X分子器,包括呢,我们检查它到底装没装上,我们可以CD来看一下LS,我们在e search文件夹里边有一个B目录,我们直接CD到B里边LS。宾里边呢,都是一些可执行命令,这个命令里边呢,有一个search plug,我们就可以来运行一下这个命令,我们叫as take search-plug。
14:11
回车。这个命令呢,也会给我们有提示,比如提示里边就说我们这个命令呢,可以用这一参数,比如我们来看一下杠H,让它帮助一下,它里边呢就有一个可用的命令叫list,列出所有我们安装好的这个ES插件好,那么就来使用plug的list命令,那现在看到呢,这有一个I开,说明我们把I开分磁器就装好了,那I开分磁器装好呢,我们也可以来测试一下,比如参照我们的这个文档,如果我们装好了I开分词器,I开分词器呢,可以有I开smart和I开max word这两种常用的分词器,那么就可以试一下这两种分词给我们带来的不同效果,那装好以后呢,我们别忘了来重启,先是在容器内部,我们先来退出容器,然后呢,我们先来doer restart,来重启一下我们的elastic search回。
15:05
那重启完了,我们也在这刷新一下,K班的,我们得稍等它重启完成。铁牌呢,说现在还连不到ES的集群里边,那我们就来稍等一下,我们再来刷新。那现在呢,K呢,就连上了ES,我们来到它的后边,那现在来看我们的这个分词,那以前我们没装I开分词器的时候,我们默认使用standard的分词,它是把中文一个一个的字给挑出来,那么现在装了I开分词器,重启了以后呢,来使用I开分词器,比如我们来体会第一个叫smart叫智能分词,我们来看一下效果走,那出现效果呢,就是上,诶硅谷是一个单词电商,它没识别,但是他把项目给识别了,那用我们的这个实例,比如我们就叫我是中国人。那叫国人好,那现在来测试一下走,那它就分成我是中国人,是一个单词,那我们如果用max word这种分词,好,Marks word,我们来测试一下。
16:13
走。现在呢,它就分成我是,诶中国人是一个词儿,中国是一个词儿,国人又是一个词,相当于他找到了最大的单词组合。那这就是我们装了I开分词器以后,我们就支持我们中文分词,能将我们的单词挑出来,但是我们也看到它很多东西呢,是不能识别的,比如我们刚才的这个上硅谷,上硅谷电商,像它没有达到我们预知的这个效果,所以呢,我们也可以来自定义这些分词,那下一节课呢,我们就来说我们如何创建自定义的词库,让他完成这些分词功能。
我来说两句