1.5.7 CharFilterFactories
CharFilterFactories
字符过滤器是一个预处理输入字符的组件,字符过滤器可以链接如token过滤器,并放置在Tokenizer(分词器)的前面,字符过滤器可以添加,更改或删除字符,同时保留原有的字符偏移量,以支持如高亮的功能.
solr.MappingCharFilterFactory
这个过滤器创建了org.apache.lucene.analysis.MappingCharFilter,可以用来改变字符.如规范化é 为 e.
例子:
<analyzer>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt" />
</analyzer>
solr.HTMLStripCharFilterFactory
这个顾虑器创建了org.apache.solr.analysis.HTMLStripCharFilter,这个过滤器从输入流中剥离HTML标签,传递结果给另一个字符过滤器或者分词器(Tokenizer).
这个过滤器:
- 删除HTML/XML标记,同时保存其他内容.
- 删除标记内的属性,支持可选择属性的引用.
- 删除XML处理指令,如:<?FOO吧>.
- 删除XML注释.
- 删除以 <!>开始的元素
- 删除 <script>和<type>元素的内容.
- 处理这些元素中XML注释(正常注释的处理并不总是工作).
- 替换数字字符实体引用,像 A 或者 .
- 如果实体引用后跟着空格的话,结束符号";"是可以选择不写的.
- 替换所有命名字符实体引用.
- 被替换为一个空格,而不是0xa0.
- 结束符号";"是强制性的,避免错误匹配.
- 换行符替换为块级元素.
- 识别<CDATA>部分.
- 行内标签 , 如<b>,<i>,<span>将被删除.
- 大写字母实体像quot,gt,lt,amp会被识别,并转为小写.
下面是一些例子:
输入 | 输出 |
my <a href="www.foo.bar">link</a> | my link |
<br>hello<!--comment--> | hello |
hello<script><!-- f('<!--internal--></script>'); --></script> | hello |
if a<b then print a; | if a<b then print a; |
hello <td height=22 nowrap align="left"> | hello |
a<b A Alpha&Omega | a<b A Alpha&Omega |
solr.PatternReplaceCharFilterFactory
参数:
pattern:对于传入文本使用的正则表达式.
replaceWith:用来替换匹配模式(pattern)的文本.
<analyzer>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="([nN][oO]\.)\s*(\d+)" replaceWith="$1$2" />
</analyzer>
下面是基于正则模式替换的例子:
输入 | Pattern | 替换 | 输出 | 描述 |
see-ing looking | (\w+)(ing) | $1 | see-ing look | 删除单词末尾的 "ing" |
see-ing looking | (\w+) ing | $1 | see-ing look | 和上面相同,第二个括号可以忽略. |
No.1 NO. no. 543 | [nN][oO]\.\s*(\d+) | #$1 | #1 NO. #543 | 替换一些字符串文字. |
abc=1234=5678 | (\w+)=(\d+)=(\d+) | $3=$1=$2 | 5678=abc=1234 | 改变groups的顺序 |
1.5.7 CharFilterFactories的更多相关文章
- 1.5 理解Analyzers,Tokenizers,Filters--目录
这部分介绍了solr如何分解和处理文本数据的,它包含一下主题: 1.5.1 Analyzers,Tokenizers,Filters概述:主要介绍Analyzers,Tokenizers,Filter ...
随机推荐
- HD1064Financial Management
Problem Description Larry graduated this year and finally has a job. He's making a lot of money, but ...
- 微软IOC容器Unity简单代码示例1
@(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } 3 ...
- ZOJ1648 Circuit Board(线段相交)
裸的判断线段相交
- JVM启动参数小结
一:JVM启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),指的是JVM底层的一些配置参数, ...
- eclipse下创建maven工程
http://blog.chinaunix.net/uid-26959955-id-3248053.html
- Spring REST实践之安全
Securing REST Services 一般有六种方式实现的REST服务的安全: Session-based security HTTP Basic Authentication Digest ...
- 隐马尔可夫模型(HMM)
转自:http://blog.csdn.net/likelet/article/details/7056068 隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. ...
- JAX-RS入门 一 :基础
简介 JAX-RS是一套用java实现REST服务的规范,提供了一些标注将一个资源类,一个POJOJava类,封装为Web资源.标注包括: @Path,标注资源类或方法的相对路径 @GET,@PUT, ...
- 数据库相关文章转载(1) MySQL性能优化之参数配置
1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...
- 电子图书的编目和OPAC揭示
摘 要 步入数字图书馆时代,电子资源日益增多,尤其在高校图书馆更加迅猛,怎样将图书馆的电子资源尽可能地整合在OPAC系统的检索功能里,以便更加简便.直观地利用,电子图书的编目已成为重要研究课题.本 ...