lucene怎么针对特殊字符做分词,或者是做索引?

哑鸟 发布于 2013/04/22 15:37
阅读 2K+
收藏 1
/**
* 初始化参数
*/
private MyLucene() {
System.out.println("...初始化开始...");
index_file = new File("E:\\lucene-index");//索引文件建立
analyzer = new IKAnalyzer();//使用Analyzer做分词
havapath = (index_file.list().length>=0);//判断是否有文件
parser = new QueryParser(Version.LUCENE_35, LucenceVo.TITLE,analyzer);//构造查询器,默认索引属性TITLE
}

展现部分代码~~

searcher = new IndexSearcher(reader);
System.out.println("值时=》:    "+keyword);
keyword = QueryParser.escape(keyword);
System.out.println("值时=》:    "+keyword);
Query query =parser.parse(keyword);
以上代码主要是把关键字的特殊符号转义,若转义之后,就不会报错,如“-”转义之后就是“\-”了。然后这样查询“-”就会查询不到。 怎么把特殊符号做分词还是查询呢?

加载中
0
littleant
littleant
IK不是可以自定义扩展词典吗 加一行不就得了
0
哑鸟
哑鸟
IK? 怎么实现? 可以说说具体的吗?  或者是加什么?
0
littleant
littleant
你看看IK的IKAnalyzer.cfg.xml文件,就是来做词典配置的,可以配置ext_dict和ext_stopwords
哑鸟
哑鸟
比如我输入“-”简历索引之后,然后输入“-”做查询就查询不到的~
哑鸟
哑鸟
还是有点不明白哦,我是直接用的 analyzer = new IKAnalyzer();//做分词,没有xml文件,怎么拓展? 难道是自定义分词吗?
0
哑鸟
哑鸟
还是有点不明白哦,我是直接用的 analyzer = new IKAnalyzer();//做分词,没有xml文件,怎么拓展? 难道是自定义分词吗?
0
littleant
littleant

是的,就是自定义分词

0
littleant
littleant
好像在API中也是可以扩展的,看你自己想怎么用了
哑鸟
哑鸟
是不是lucene把特殊字符给处理掉了 比如是隐藏了~
0
戴威
戴威
去看官方文档
戴威
戴威
回复 @杨密 : IKAnalyzer的文档是中文的。
哑鸟
哑鸟
呵呵 官方文档老是英文的 都要看一会~ 现在只能做成自定义分词了
0
sesamefox
sesamefox
在IKAnalyzer.cfg.xml新增了一个字典里面放﹌,结果没效果啊
返回顶部
顶部