3_ansj分词插件安装.md 4.27 KB

https://github.com/NLPchina/elasticsearch-analysis-ansj

git clone https://github.com/NLPchina/elasticsearch-analysis-ansj.git cd elasticsearch-analysis-ansj git checkout v8.3.3 mvn package

会提示编译失败(v8.x版本都会失败,7.x就没问题),错误信息如下: [ERROR] /ssd/samba_root1/projects/ansj/elasticsearch-analysis-ansj/src/main/java/org/ansj/elasticsearch/plugin/AnalysisAnsjPlugin.java:[14,34] 无法访问org.apache.lucene.analysis.Analyzer [ERROR] 错误的类文件: /home/hello/.m2/repository/org/apache/lucene/lucene-core/9.2.0/lucene-core-9.2.0.jar(org/apache/lucene/analysis/Analyzer.class) [ERROR] 类文件具有错误的版本 55.0, 应为 52.0 [ERROR] 请删除该文件或确保该文件位于正确的类路径子目录中。

7.x版本都没问题,8.x就会出这个错误。尝试把jdk版本从1.8改成 11, 17, 18、升级maven版本到3.9.6都不行(又提示类文件具有错误的版本 61.0, 应为 55.0)。 有人说可能是依赖冲突,不知道是否可以修改下环境,使得不冲突。

因此自己编译只能编译v7.17.16。8.x,release里面有现成的版本: ./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-analysis-ansj/releases/download/v8.7.0/elasticsearch-analysis-ansj-8.7.0.0-release.zip

测试: kibana中 : GET /cat/ansj?text=中国&type=index_ansj 或者: curl -X GET "http://localhost:9200/cat/ansj?text=中国&type=index_ansj"

curl -X GET "http://localhost:9200/_cat/ansj?pretty" -H 'Content-Type: application/json' -d'
{
"type": "index_ansj",
"text": "中国"
}'

注意事项

ansj分词如果没有设置停用词的话,空格也会被分出来,搜出来的结果空格也会被飘红(如果query带空格的话)。所以一定要设置停用词表。

词性说明:
附-词性表格 符号 词性 解释 n 名词 取英语名词noun的第1个字母。 np 人名
nr 人名 名词代码n和“人(ren)”的声母并在一起。 nh 人名
ns 地名 名词代码n和处所词代码s并在一起 ni 机构名
nz 其它专名
nt 机构团体名 “团”的声母为t,名词代码n和t并在一起。 nl 名词性惯用语
nd 方位名词
ng 名词性语素
b 区别词
m 数词 取英语numeral的第3个字母,n,u已有他用。 q 量词 取英语quantity的第1个字母。 mq 数量词
t 时间词 取英语time的第1个字母。 f 方位词 取汉字“方” 的声母。 s 处所词 取英语space的第1个字母 v 动词 取英语动词verb的第一个字母。 vd 副动词
vn 名动词
vshi 动词“是”
vyou 动词“有”
vf 趋向动词
vx 形式动词
vi 不及物动词(内动词)
vl 动词性惯用语
vg 动词性语素
a 形容词 取英语形容词adjective的第1个字母。 an 名形词
ad 副形词
an 名形词
ag 形容词性语素
al 形容词性惯用语
d 副词 取adverb的第2个字母,因其第1个字母已用于形容词。 h 前接成分 取英语head的第1个字母。 k 后接成分
i 成语 取英语成语idiom的第1个字母。 j 简称 取汉字“简”的声母。 l 习用语 习用语尚未成为成语,有点“临时性”,取“临”的声母 r 代词 取英语代词pronoun的第2个字母,因p已用于介词。 c 连词 取英语连词conjunction的第1个字母。 p 介词 取英语介词prepositional的第1个字母。 u 助词 取英语助词auxiliary 的第2个字母,因a已用于形容词。 ud 结构助词 有 ug 时态助词 你 uj 结构助词的 迈向 ul 时态助词了 完成 uv 结构助词地 满怀信心 uz 时态助词着 眼看 y 语气助词 取汉字“语”的声母。 e 叹词 取英语叹词exclamation的第1个字母。 o 拟声词 取英语拟声词onomatopoeia的第1个字母。 g 语素 绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。 w 标点
x 其它 非语素字只是一个符号,字母x通常用于代表未知数、符号。 z 状态词 取汉字“状”的声母的前一个字母。 tg 时语素 时间词性语素。时间词代码为t,在语素的代码g前面置以T。