
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_ik
或者：
curl -X GET "http://localhost:9200/_cat/ansj?text=中国&type=index_ik" 


curl -X GET "http://localhost:9200/_cat/ansj?pretty" -H 'Content-Type: application/json' -d'  
{  
  "type": "index_ik",  
  "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。