Blame view

docs/ES/3_ansj分词插件安装.md 4.27 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
23
24
25
26
27
28
29
30
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
  

  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。