00:00
前面我们安装好了I开分词器,并且呢测试了一下它的分词效果,但我们发现呢,在实际应用中,它的这个分词不能达到我们预期的期望,比如我们希望呢上硅谷是一个完整的单词,这是由于我们I开分词器它本身默认的词库并不支持识别一些新的词汇,那比如网络中的一些经典用语,一些流行新词,包括网络用用语等等,这些呢都不能识别,我们就需要自己来扩展,我们可以来看一个例子,比如呢我们输入一个流行的单词。我们会发现呢,这个在搜狗是可以识别的,但是呢,我们I开分词器走,它没法识别,我们这个是一个人名,那基于这些场景,我们就需要扩展我们的词库,这个扩展词库呢也比较容易,我们只需要呢,修改I开分词器的这个配置文件,我们最简单呢,可以来指定一个远程词库,让I开分词器自己向远程发送请求,要到一些最新的单词,这样呢,最新的单词就会作为新的次元进行分解,所以呢,我们有两种方式,第一种我们自己来写一个项目,处理这个请求,返回我们新的单词,让I开分词器给我们这个项目来发送请求,那第二个呢,我们也可以来装上NN呢大家如果不懂的,你就把它当成一个tomcat,我们将我们的最新词库,我们放到NS里边,让我们I开分器给N发送请求,由它,诶它也是一个web服务器,给我们最终来返回我们最新的这个词库,它就能把这个新词库。
01:33
呢和原来的词库合并起来,那么呢,首先就得安装上NG,整个安装步骤呢,大家可以参照我们附录里边的NG安装步骤,但在安装之前我们呢,得把虚拟机稍微设置一下,我们现在这个虚拟机我们默认的内存稍微有点小,我们可以来看一下CTRLL,我们写一个free-M可用呢,只剩了50兆,后来我们要装很多东西,所以就不够了,那我们就把这个讯机我们重启,我们给它重新调整一下内存。
02:06
我们把它呢,先得进行关机,我们可以直接关闭电源,好这样关机快,好我们来点一个设置,在设置这呢,我们把它内存调到三个G左右,比如我们就调个3075,好点一个OK,接下来我们来重新启动虚拟机无界面启动,然后呢,我们再来使用我们的Linux工具,我们来连接上这个虚拟机,好,我们重新连接上我们这个电商虚拟机,好,现在呢,我们连接上了虚拟机,包括我们可以看一下docker PS,现在正在运行的容器有这么多。我们之前装的Kan ES,包括red my都启动起来了,包括我们来看一下现在的可用内存free-M,那现在呢比较大,我们N就够用了,而且呢,我们在这儿来修改一个东西,我们在之前来装ES的时候,我们设置的这个内存是六十四幺二八,ES的这个GVM对内存设置的有点小,经常呢ES会出问题,我们在测置期间呢,比如我们就给它设置个512就足够使用了,那设置这个呢,最快的方式是我们先来停掉我们原来的ES,我们来创建一个新的,那学些同学说,那停掉原来的,创建一个新的容器。
03:21
那数据会不会丢失呢?其实我们发现我们在之前创建容器的时候,把ES的数据。映射到了我们外边的这个目录文件夹data,所以呢,我们即使删掉了这个容器,由于外边的文件夹还在,我们在创建新的,又跟外边关联起来,数据呢也不会丢失,那现在来把这个ES停掉,Docker stop 2c5 2c5,然后呢,并且把它移除,我们使用doer RM移除这个容器,2C5,我们重新来创建一个ES。而且呢,我ES的数据都放在了我们的elastic search下边,包括我们来看一下这里边呢有这个data,所以呢,Data里边的这些数据我们一直在不会丢失,那接下来呢,我们就来创建一个新的容器,这个新的容器呢,直接把我们的这个命令复制过来,我们指定上新的内存512,好把这个呢创建出来。
04:17
回车。我们使用doer PS。我们看到呢,现在我们这个ES就启动起来了,那么把ES稍微修改一下,接下来我们再来创建N,那创建N的步骤参照我们的附录,首先我们随便启动一个engines实例,这个启动呢是为了把engines的这个配置复制出来,因为engines里边有非常多的配置文件,我们可以把他之前默认的这些模板配置文件都复制出来。那么使用这个命令docker run-P80暴露NS80端口,起一个名字杠D,我们使用NGS1.10镜像好复制过来,我们在这来进行下载,但是在下载之前呢,我们先CD点点杠,我们来看一下CD点点杠来到我们的这个my data文件夹,我们以后呢,将所有ins的东西我们都放在我们这个ins文件夹里边,来创建一个NS文件夹,LS跟engines有关的所有配置以及数据我们都放这儿,接下来呢,我们就来复制这个命令,先随便启动一个NS容器,但启动之前我来给大家看一下docker images,那看一下我们所有的镜像,我们还没有下载NS镜像,那么可以先来下载,但是呢,我们可以直接来运行这个命令,即使不下载也行了,那直接运行这个命令呢,如果他发现注意前面复制多的这些空格,我们一定要再过来进行删除,我来写上。
05:45
那这个D。这点是它的显示问题,我们就不用管了,好,那现在呢,是启动这个N容器,如果第一次呢,没有这个镜像,它还会先下载这个镜像,然后再按照这个镜像启动容器回撤,我发现呢,他说没有找到我们这个镜像。
06:04
那本地没有找到这个镜像呢,它就会自动的去来远程下载。那这样呢,我们这个镜像就下载来了,而且启动了N容器,我们看到呢,这有一个N的启动,但这个NG不是我们最终要装的,我们把它拿来只是想来做一件事儿,就是把engines里边的配置文件整个复制过来,怎么复制呢?我们使用这个命令叫docker container cp cp呢那就是copy复制,复制什么这一块来写我们容器的名字冒号,那就是容器里边我们要复制哪个文件夹,我们是etcns,然后呢,别忘了我们这个点,而且呢,这中间有一个空格,那我就把这一块呢,整个命令我复制过来。特别呢,这个容器名要写对,因为我们刚启动的这个容器名,它就叫n names n,所以呢,我用这个命令是没问题的,那我们在复制之前,我们先来看一下,在my data里边有这四个文件夹,我来一运行这个命令,那它呢,就是把engines里边这个NS下边的文件复制到我们当前目录来回车,我们LS看一下,那么当前目录呢,就有一个N,我们来CD到NS里边来看一下,那这个NS里边呢,就包含了这一块从我们虚拟机里边复制的东西,因为它里边呢,原来默认是没有这个东西的,我们之前创建的空文件夹,那一复制过来以后呢,那就有了,那这一块把我们NS容器里边的这些配置复制出来以后呢,我们这个NS就可以停掉了,那docker stop n好,然后呢,我们把它重新RM掉,那接下来呢,我们把这一块做完了以后LS。
07:52
我们看到我们从容器里边复制了这么多东西,我们CD出来LS,那为了整个我们文件夹目录更有结构,我们先把这个N,我们来改一个名字,我们把N。
08:04
变叫变成叫config ls,我们现在呢就有一个config文件夹,我们重新来创建一个N文件夹,我们把这个config呢移到里边MV,我们把conf文件夹移动到我们NX里边,注意我们是整个移动文件夹回车LS,我们现在呢conf文件夹就不不见了,我们CD到N里边,我们NS里边呢多了一个conf文件夹,那以后呢,N配置就在这儿,我们把之前的N容器也都关掉了,接下来呢,我们再来启动我们要用的直接使用这个命令叫doer run-P,那就是映射NG的八零端口,我们当前容器的名字就叫NNS换行把NS里边所有的HTMMR然静态页面资源我们放到映射到我们my data ns这个文件夹下,我们将N的日志相关信息我们映射到logs下,那NS的配置跟我们这个con整个关联起来,然后呢,我们把这一块命令。
09:04
运行CTRLC,当运行这个命令之前,一定要保证NS文件夹里边是这个样子的,这是我们NS文件夹里边有config htm2和LOGS3个文件,但这两个文件夹暂时可以先不创建,那在这呢,有一个映射,它会帮我们来自动创建出来,好,我们来粘贴一下。回车LS,我们来看一下这一块呢,多了HTMR和logs,然后呢,我们NS的容器就启动了,来docker PS我们看一下,我们现在呢,有一个N已经启动成功了,那以后只要我们访问虚拟机的八零端口,比如192.16856来访问它的八零端口,那就是不带端口号,就是八零端口,我们就会来到NGS的这个欢迎页,它默认的是403否碑的,因为没有任何页面是拒绝,那我们可以来做一个简单的测试,PWD还是来到我们外部挂载的这个NS文件夹,那么CD到它的HTMMR里边S我们呢,来VI,我们自己来写一个文件,就叫htm Mr in base htm Mr只要N的HTML文件夹下有一个in base htmr,那呢它就会进行默认展示,我们来回车输入I,我们编写一段HTM2代码,我们来写一个H1,好,我们就叫H1,那么这一块。
10:26
代码呢,比如就叫鼓励麦,我们来WQ保存完了以后呢,我们来访问NS,重新刷新,诶我们发现呢,这就是我们的页面,那NS呢就通了,那通了以后呢,下来我给NS的这个HTML文件夹下,我来再创建一个文件夹Mac DA,我呢就叫ES,我们把e search I开分词器要用的一些资源我们放到跟ES有关的文件夹下好S跟CD到ES里边,然后呢,我VI,我比如呢就有一个叫分词点test,我们将我们要分词的内容我放在这,然后我输入I,输入我们自己的内容,比如我们想要让它识别的新名词上硅谷一个回车,比如我们这个乔碧萝这个人名算一个,我们ESC退出,WQ保存好,我们ESC退出以后按冒号WQ保存,那接下来我们想要访问这个文本里。
11:26
的内容怎么访问呢?你也可以测试一下来访问我们的虚拟机,由于呢,NX默认来找资源全部都是在它的这个HTML文件夹下找的,所以呢,我们想要访问它下面的东西,那就直接带上这个路径就行了,比如我们就叫ESSES呢下边有一个分词,点test好,我们回车,我发现这个内容呢已经访问到了,乱网问题我们可以先不用管,那至此呢,我们NG就装好了,那装好以后我们再来配置I开分词器的远程词库地址,我们来到自定义词库,我们只需要修改I开分磁器的配置,同样的I开分器的所有配置我们也都挂载到了我们外边的search里边,我们CD到它里边LS,那CD到它的plugs里边,Plugs里边有我们的这个I开分词器,它里边呢,有一个config文件夹,我们进来,主要呢,有一个叫I开这个config插面我们就来。
12:26
修改它。Analyz,好,来回车输入I,我们进入编辑模式,那他在这儿呢,就注销了一些信息,比如用户可以在这配置远程扩展字典,那我们就把它的这个注释我们给他打开。好,那这一块呢,也一样,把这个注释呢,我们给它打开,那我们的这个分词字典的位置,我们就来把我们的这个地址拿过来,我们刚才测试的1921685610的这个分词地址,我来复制来。
13:03
我们在这儿呢,粘贴过来,这是我们最新的词库位置,好,我们来WQ。保存并退出,那这块改完以后呢,我们一定要重启一下我们的ES,使用doer start。我们直接来重启我们的elastic search,使用它的容器名或者它的容器ID都可以重启回车。好,那这块重启完了以后呢,我们要确认我们的ES现在重启成功,那稍等它成功,成功了以后呢,们来测试它的粉丝效果,我们来刷新一下,看它有没有启动成功,诶那这一块的就好了,然后呢,我们来到K班的里边,我们再来测试这个分次效果,因为我们加了自定义词库,走,那我们发现呢,这个词它就识别出来了,那么这样呢,就配置好了,我们I开分词器的自定义词库。包括呢,由于我们刚才新创建的ES容器,我们以后启动我们的整个虚拟机,我们也要让这个ES容器要重启,我们之前呢,忘了没给它加重启的参数,那么在这儿再来修改一下。
14:11
Doer update,我们来修改elastic search这个容器,我们给它加上杠杠,Restart等于always,让它呢自动重启过来,好,那写上等一号回车以后虚拟机启动,它就会自动启动,那这一块呢,我们词库就配置好了,那以后我们还有什么扩展单词,我们就完全可以来到我们my data n htm res这个文件夹下,我们来修改我们的分词test就行了,有新单词我们加到里边来重启ES,它就能自动识别。
我来说两句