lucene3创建Html索引时候报Parse Aborted错的解决方法
问题描述:
用Lucene自带的htmlindex Demo在建索引时,会报错:
Parse Aborted: Lexical error at line 63, column 16. Encountered: "\u987b" (39035), after : ""
究其原因是由于某html文档里的某标签内出现Unicode编码的字符,如出现中文,而导致的。
问题解决:
只要修改HtmlParser.jj,就可以解决以上问题:
第一:先下载一个javacc
第二:修改HtmlParser.jj文件的
options { IGNORE_CASE = true; STATIC = false;} 为:
options { IGNORE_CASE = true; STATIC = false; UNICODE_INPUT=true;}
第三:运行javacc HtmlParser.jj
第四:把产生出来的java文件覆盖JavaCC HTML Parser 的源文件
问题衍生:
如何让JavaCC HTML Parser支持过滤动态脚本内容% … %呢?
一个简单的方式是:可以把% … %中的内容当作一段html注释处理,这样需要修改htmlparser的注释token定义部分:
COMMENT_START (!– %) LexComment
COMMENT_END (– ( ) – %) DEFAULT
欢迎转载,请注明出处:亲亲宝宝