更新时间:2024-11-29 GMT+08:00
敏感词过滤
操作场景
对查询返回结果中的敏感词进行过滤。
- 查询时如果带上参数distrib=false,则不支持对敏感词进行过滤。
- 仅对String和Text类型的字段进行敏感词过滤处理。
前提条件
已成功安装Solr服务。
操作步骤
- 配置、更新敏感词
配置敏感词
- 下载配置集模板。
- 配置敏感词列表“excludeWords.txt”。
- 支持敏感词的上限为一万个词。
- 如果是文本字段,敏感词的匹配与分词器有关。即如果文本字段中含有敏感词,则对文本字段分词后,能够分出敏感词。
- 敏感词列表中有重复的敏感词时,保留敏感词级别高的敏感词。
- 查询时,过滤掉敏感级别高于等于参数excludePriority值的敏感词。
vi ./test_exclude/conf/excludeWords.txt
#例如,敏感词,敏感级别 you,4 daisy,10 me,2 solr,7
- 在查询请求处理器中配置敏感词过滤组件。在test_exclude/conf/solrconfig.xml 添加如下配置:
<requestHandler name="/exclude" class="solr.SearchHandler"> <lst name="defaults"> <str name="echoParams">explicit</str> <int name="rows">10</int> <bool name="preferLocalShards">false</bool> </lst> <arr name="components"> <str>query</str> <str>exclude_terms</str> <str>facet</str> <str>facet_module</str> <str>mlt</str> <str>highlight</str> <str>stats</str> <str>debug</str> <str>expand</str> </arr> </requestHandler>
- 该配置已经配置到confWithSchema/conf/solrconfig.xml 中。
- 敏感词处理组件名称为exclude_terms。
- 创建配置集。
- 创建Collection,指定配置集为exclude_conf。
solrctl collection --create exculde_coll -c exclude_conf -s 3 -r 1 -m 1
更新敏感词
- 查询,Solr Admin UI使用示例,在Request-Handler (qt)中输入“/exclude”,在Raw Query Parameters中输入“excludePriority=2”。
在图1结果集中“excludeResultNum”表示已过滤掉的结果数目。
- 在Request-Handler (qt)中输入“/exclude”,其中“/exclude”为1.c中配置的requestHandler名称。
- 在Raw Query Parameters中输入“useExclude=false”,可关闭对查询结果的敏感词过滤。
父主题: Solr业务常见操作