文章目录
ElasticSearch分词插件
Mynlp自带Elasticsearch分词插件,开箱即用。速度高达6.5M/秒。
https://github.com/mayabot/mynlp
由于es版本发布太快,且插件配置文件中必须知道详细的版本号,这里只提供大版本的ES插件下载,下载解压后需要手动修改
plugin-descriptor.properties
文件
下载地址
阿里云CDN提供下载,速度很快,流量有限,不要重复下载哈:)
ES版本 | MYNLP版本 | 大小 | 下载地址 |
---|---|---|---|
6.x | 3.0.1 | 36.7M | 下载 |
7.x | 3.0.0 | 38M | 暂未开放 |
安装与配置
下载对应大版本号的插件zip文件,解压后放到Es的plugins文件夹下
└── plugins
└── mynlp-elasticsearch6-3.0.1
├── annotations-13.0.jar
├── guava-19.0.jar
├── guice-4.1.0-no_aop.jar
├── javax.inject-1.jar
├── jsr305-3.0.2.jar
├── kotlin-stdlib-1.3.50.jar
├── kotlin-stdlib-common-1.3.50.jar
├── kotlin-stdlib-jdk7-1.3.50.jar
├── kotlin-stdlib-jdk8-1.3.50.jar
├── mynlp-core-3.0.1-SNAPSHOT.jar
├── mynlp-elasticsearch6-3.0.1-SNAPSHOT.jar
├── mynlp-lucene-3.0.1-SNAPSHOT.jar
├── mynlp-perceptron-3.0.1-SNAPSHOT.jar
├── mynlp-resource-coredict-1.0.0.jar
├── mynlp-resource-ner-1.0.0.jar
├── mynlp-segment-3.0.1-SNAPSHOT.jar
├── plugin-descriptor.properties
└── plugin-security.policy
修改plugin-descriptor.properties
文件中的版本号
classname=com.mayabot.mynlp.es.MynlpPlugin
java.version=1.8
elasticsearch.version=6.7.1
has.native.controller=false
修改elasticsearch.version
为你实际ES的详细版本号。
如何使用
参数
参数 | 默认 | 说明 |
---|---|---|
mode | top | 字词输出模式。可选值 top atom overlap . |
sub-word | none | 字词切分算法。可选值none 和 index |
personName | true | 启用人名识别 |
filter-punctuation | true | 过滤标点符号 |
filter-stopword | false | 过滤中文停用词 |
mode
- top 输出复合词,子词不输出
- atom 输出子词,复合词不输出
- overlap 堆叠。同时输出复合词和子词
sub-word
子词计算方法
– none 不计算子词。
– index 索引分词计算模式。
测试mynlp分词器
GET _analyze
{
"tokenizer": {
"type":"mynlp",
"mode":"overlap",
"sub-word":"index",
"personName":true,
"filter-punctuation":false,
"filter-stopword":false
},
"text":"庆祝中华人民共和国成立70周年系列论坛第五场活动举行"
}
创建索引时自定义分词器
PUT /test_index
{
"settings": {
"index" : {
"analysis" : {
"analyzer" : {
"mynlp" : {
"tokenizer" : "mynlp"
}
},
"tokenizer": {
"mynlp":{
"type":"mynlp-core",
"mode":"atom",
"sub-word":"index",
"personName":true,
"filter-punctuation":true,
"filter-stopword":true
}
}
}
}
},
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "mynlp"
}
}
}
}