做全文搜索当然离不开lucene
但是要用好lucene可不简单
在开发过程中遇到这样一个问题
[b]问题描述[/b]
要对用户名进行搜索 就像je的搜索频道那样
插入是没有问题的 用的StandardAnalyzer
查询出问题了 中文用户名都查不出来 英文名没有问题
用luke看也没乱码
到底哪儿出了问题呢?
最好想到了StandardAnalyzer上
对汉字进行搜索是 StandardAnalyzer会对查询关键字进行分次 比如我们输入‘张学友’
分次后可能是 ‘张学’‘学友’ 等等 所以查不出我们想要的
怎么办呢? 更换分词器 用StopAnalyzer WhitespaceAnalyzer等都可以 只要不对汉字进行分词 ,让其精确匹配就可以了
还有一点值得一体 写索引是的分词器最好跟读时的分词器一致,否则未必找到你想要的结果
但是要用好lucene可不简单
在开发过程中遇到这样一个问题
[b]问题描述[/b]
要对用户名进行搜索 就像je的搜索频道那样
插入是没有问题的 用的StandardAnalyzer
查询出问题了 中文用户名都查不出来 英文名没有问题
用luke看也没乱码
到底哪儿出了问题呢?
最好想到了StandardAnalyzer上
对汉字进行搜索是 StandardAnalyzer会对查询关键字进行分次 比如我们输入‘张学友’
分次后可能是 ‘张学’‘学友’ 等等 所以查不出我们想要的
怎么办呢? 更换分词器 用StopAnalyzer WhitespaceAnalyzer等都可以 只要不对汉字进行分词 ,让其精确匹配就可以了
还有一点值得一体 写索引是的分词器最好跟读时的分词器一致,否则未必找到你想要的结果