Blame view

docs/ES/ES_8.18/3_ansj分词插件安装.md 4.26 KB
648cb4c2   tangwang   ES docs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  

  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

  

  测试:

30f2a10b   tangwang   ansj -> ik
23
  kibana中 : GET /_cat/ansj?text=中国&type=index_ik

648cb4c2   tangwang   ES docs
24
  或者:

30f2a10b   tangwang   ansj -> ik
25
  curl -X GET "http://localhost:9200/_cat/ansj?text=中国&type=index_ik" 

648cb4c2   tangwang   ES docs
26
27
28
29
  

  

  curl -X GET "http://localhost:9200/_cat/ansj?pretty" -H 'Content-Type: application/json' -d'  

  {  

30f2a10b   tangwang   ansj -> ik
30
    "type": "index_ik",  

648cb4c2   tangwang   ES docs
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
    "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。