b2c网站名称,竞价关键词排名软件,澧县网页设计,宁波市高等级公路建设指挥部网站原理#xff1a;分词的原理#xff1a;二叉树 首先讲一下为什么要出这个文章#xff0c;前面我们讲过分词方法#xff1a;中文分词搜索 pscws#xff08;感兴趣的同学可以去爬楼看一下#xff09;#xff0c;那为什么要讲IK分词#xff1f;最主要的原因是… 原理分词的原理二叉树 首先讲一下为什么要出这个文章前面我们讲过分词方法中文分词搜索 pscws感兴趣的同学可以去爬楼看一下那为什么要讲IK分词最主要的原因是pscws分词颗粒度不如IK分词的颗粒度高现在的需求要求颗粒度细一点以便提高搜索进度所以我们今天讲一下IK分词 第一步安转Elasticsearch这个在博主原来的文章里面有所以不在讲述安装完成后运行结果
访问地址http://localhost:9200 第二步安转IK扩展现在下载扩展包需要选择和自己的Elasticsearch对应的版本我的Elasticsearch版本是7.3.2下载后存放在/plugins 目录下 下载地址https://gitcode.net/mirrors/medcl/elasticsearch-analysis-ik/-/tree/v7.3.2 直接运行会发现闪退情况为什么会出现这样的情况主要有两个原因 1.版本不配 2.未修改配置 ,配置如何修改 需要安装 maven 包管理工具这个是JAVA开发的所以需要安装JAVA的环境IK 分词器需要 Java 8 或者以上的版本 一、下载安装 1. 下载地址 maven下载地址如下各位请选择对应系统的maven版本进行下载。 https://maven.apache.org/download.cgi 2. 解压maven安装包 maven安装包下载之后对其进行解压。 二、配置环境变量: 系统变量新增变量名MAVEN_HOME 值maven存放目录 系统变量追加变量名path 值%MAVEN_HOME%\bin 测试maven是否配置完毕输入mvn -v命令如果出现maven版本号就表明安装成功。 如果报错 配合The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE 没有安装Java的运行环境或者JAVA_HOME的环境变量没有配置安装好JAVA的运行环境后记得配置JAVA_HOME环境变量安装好后再运行mvn -v命令
查看命令elasticSearch-plugin list安装成功 第三步使用分词PHP版本
//引入自动加载文件 require_once APPPATH.../vendor/es/autoload.php;//使用命名空间引用 use Elasticsearch\ClientBuilder; class Test extends CI_Controller { //初始化 public function __construct() { parent::__construct(); //拼接参数 $params [ [ host 地址, port 端口号, scheme http, user 用户名, pass 密码 ] ]; //初始化对象 $this-client ClientBuilder::create()-setHosts($params)-setConnectionPool(连接池地址相对地址, []) -setRetries(10)-build(); } //分词器 public function ik(){ $params [ body [ text 中国上海市直辖市静安区, //ik_max_word 精细 ik_smart 粗略 analyzerik_max_word ] ]; //请求分词 $res $this-client-indices()-analyze($params); var_dump($res);die; } } IK精细分词输出结果 array(11) { [0]array(5) { [token]string(6) 中国[start_offset]int(0)[end_offset]int(2) [type]string(7) CN_WORD[position]int(0) } [1]array(5) { [token]string(9) 上海市[start_offset]int(2)[end_offset]int(5) [type]string(7) CN_WORD[position]int(1) } [2]array(5) { [token]string(6) 上海[start_offset]int(2)[end_offset]int(4) [type]string(7) CN_WORD[position]int(2) } [3]array(5) { [token]string(6) 海市 [start_offset]int(3)[end_offset]int(5) [type]string(7) CN_WORD[position]int(3) } [4]array(5) { [token]string(6) 市直 [start_offset]int(4)[end_offset]int(6) [type] string(7) CN_WORD[position]int(4) } [5]array(5) { [token]string(9) 直辖市[start_offset]int(5)[end_offset]int(8) [type]string(7) CN_WORD[position]int(5) } [6]array(5) { [token] string(6) 直辖[start_offset] int(5)[end_offset]int(7) [type]string(7) CN_WORD[position]int(6) } [7]array(5) { [token]string(3) 市[start_offset]int(7)[end_offset]int(8) [type]string(7) CN_CHAR[position]int(7) } [8] array(5) { [token]string(9) 静安区 [start_offset]int(8)[end_offset] int(11) [type]string(7) CN_WORD[position]int(8) } [9]array(5) { [token]string(6) 静安 [start_offset]int(8)[end_offset]int(10) [type]string(7) CN_WORD [position]int(9) } [10]array(5) { [token]string(3) 区[start_offset]int(10)[end_offset]int(11) [type]string(7) CN_CHAR[position]int(10) } } }
IK粗略分词
array(1) { [tokens] array(11) { [0]array(5) { [token]string(6) 中国[start_offset]int(0)[end_offset]int(2) [type]string(7) CN_WORD[position]int(0) } [1]array(5) { [token]string(9) 上海市[start_offset]int(2)[end_offset]int(5) [type]string(7) CN_WORD[position]int(1) } [2]array(5) { [token]string(9) 直辖市[start_offset]int(5)[end_offset]int(8) [type]string(7) CN_WORD[position]int(5) } [3] array(5) { [token]string(9) 静安区 [start_offset]int(8)[end_offset] int(11) [type]string(7) CN_WORD[position]int(8) } } } 中文分词搜索 pscws
array(4) { [中国] array(4) { [word] string(6) 中国 [times] int(1) [weight] float(6.2600002288818) [attr] string(3) ns }
[上海市] array(4) { [word] string(9) 上海市 [times] int(1) [weight] float(7.8200001716614) [attr] string(3) ns }
[直辖市] array(4) { [word] string(9) 直辖市 [times] int(1) [weight] float(6.8499999046326) [attr] string(3) n }
[静安区] array(4) { [word] string(9) 静安区 [times] int(1) [weight] float(12.140000343323) [attr] string(3) ns } } 至此IK分词器讲解完成,可以对比一下IK与pscws的区别后续操作可以根据自己的业务来确定