停止词配置指南
停止词是无功能意义的词,比如 is、a、are、'的'、'得'、'我'等,这些词会在句子中多次出现却无意义,所以在分词的时候需要把这些词过滤掉。
环境信息:Solr 4.5.1, mmseg4j 1.9.1, JDK 1.6.0_45, Tomcat 6.0.37 | CentOS 5.7
准备停止词
在 solr home 下建 dic 目录,里边放需要用到的停止词文件,文件中每行一词。此处为测试仅加入了'的'。目录形如:
/root/solr-4.5.1/example/solr/dic/stopwords.txt
修改 schema
在 solr-4.5.1/example/solr/test/conf/schema.xml 中增加 filter 配置:
<filter class="solr.StopFilterFactory" ignoreCase="true" words="/root/solr-4.5.1/example/solr/dic/stopwords.txt"/>
重启服务
重启 Tomcat 使配置生效。
效果验证
设置前与设置后的分词结果会有所不同,停用词将被过滤。
注意事项
- stopwords 文件网上有一些共享资源,也可以自行添加;
- 如果 stopwords 文件是从 Windows 编辑后上传到服务器的,非常容易因编码问题导致异常,推荐直接在服务器编辑保存;
- 如果配置的 content 字段使用的是 textMaxWord 类型,请确保在相应位置处配置;
- 某些情况如获取分词数量排行、做分词云,需要删除旧索引重新生成;
- MMST: com.chenlb.mmseg4j.analysis.MMSegTokenizer SF: org.apache.lucene.analysis.core.StopFilter


