Lucene
文章平均质量分 77
代码盗圣
我爱编程
展开
-
关于 Lucene 搜索语法与分词的浅显研究
上文我用icu分词器实现了简单的中文分词器,却发现不能直接在搜索之时使用,会打断一些lucene搜索语法的分析。比如,使用双引号进行全文搜索,我制作的自定义分词器却出现了冗余内容,反而查找不到任何有效内容……问号无法在双引号内使用。其实双引号之内,空格以及标点符号是被过滤掉的,匹配连续的关键词。原创 2022-12-04 15:57:36 · 491 阅读 · 0 评论 -
安卓高级编程之实现类似三星系统的设置界面,并用lucene建立搜索系统
安卓的默认设置实现略显杂乱无章,且无法搜索。需要亿点美化与扩展。原创 2022-09-14 12:22:52 · 865 阅读 · 0 评论 -
Lucene 之又一奇葩设定:lengthNorm 导致文章越长,排名越后
上文中自定义了 WordBreakFilter,可以大幅地改善结果排序,更加精确地命中汉语词组。但最近又发现一个排序上的错误:以`开心`为关键词全文搜索《牛津英语词典》之时,词条“unrip”……原创 2022-09-10 00:13:19 · 231 阅读 · 0 评论 -
古怪的Lucene中文分词方案 —— CJKAnalyzer
Lucene 4.7 的分词器中已经有CJKAnalyzer了,这个分词器支持中文、日文、韩文和朝鲜文。其过滤器CJKBigramFilter,既可以同时输出单字与双字切割,也可以选择只输出双字切割。可见,虽然CJKAnalyzer的分词方法较为简陋,但对于搜搜双字词语还是有帮助的,排序不会像 StandardAnalyzer 那样杂乱。同时输出单字与双字,还可搜索到更多结果。关键词搜索“人民”,使用 StandardAnalyzer 之时,词条“工人居民”居然排在了“人民银行”等词条的前面。原创 2022-09-03 13:12:32 · 646 阅读 · 0 评论 -
用不到一百行代码为Lucene实现优雅的中文分词
废话不多说直接上代码 WordBreakFilter.java:使用:测试案例代码见上文。原理:在自定义过滤器WordBreakFilter中调用icu4j的BreakIterator进行断词。这是一个萌新试图用乱拳打死smartcn、paoding等老师傅的故事……原创 2022-09-04 15:44:54 · 379 阅读 · 0 评论