放牧代码和思想
专注自然语言处理、机器学习算法

标签:Lucene

Lucene分类统计示例
Java

Lucene分类统计示例

hankcs阅读(3885)评论(0)

需求 在检索系统中,遇到了分组统计(Grouping/GroupBy)的需求,比如将搜索结果按照栏目分类,统计每个栏目下各有多少条结果。以前的做法很愚蠢,先发起一次search统计出有多少组,然后在每个组里发起一次search;这样在有N组...

Lucene高亮关键字与设置高亮串长度
Java

Lucene高亮关键字与设置高亮串长度

hankcs阅读(3770)评论(3)

Lucene的Hightlight模块可以高亮搜索结果中的关键字,给搜索引擎自定义界面的自由。 如何创建Highlighter 为了创建一个Highlighter,需要一个Formatter和一个Scorer,如下所示: Highlight...

Lucene同义词对查询的影响
Java

Lucene同义词对查询的影响

hankcs阅读(3420)评论(1)

在测试一个查询的时候,我发现第二条搜索结果非常令人不满意,竟然是一条毫无关系的结果。仔细查看了Explanation之后,看到了如下情况: 同义词有很多条,这些同义词虽然每一个的得分都不高,但是累积起来就产生了3.3分左右的高分,直接将一条...

WordPress集成Lucene全文搜索
PHP

WordPress集成Lucene全文搜索

hankcs阅读(3575)评论(6)

终于将Lucene集成到中文WordPress中了,实现了中文博客的全文搜索。作为一个搞NLP的博主,如果还在用SQL的LIKE做搜索,那也太不上档次了。这次集成主要难点在于 ①PHP平台上并没有一款成熟的分词套件。 ②Lucene的PHP...

Lucene 同义词
Java

Lucene 同义词

hankcs阅读(4961)评论(4)

在Lucene4.6中通过SynonymFilterFactory实现中文同义词非常方便,只需几行代码和一个同义词词典。这个词典还能在Lucene中实现一定程度的拼写纠错,提升搜索体验。在下面这个例子中我们从磁盘载入一个同义词词典,并且对“...

Lucene 时间排序
Java

Lucene 时间排序

hankcs阅读(4161)评论(3)

在Lucene4.6中,想要实现搜索结果按照时间倒序的效果:如果两个文档得分相同,那么就按照发布时间倒序排列;否则就按照分数排列。这种效果在Lucene4.6中实现起来极其简单,直接利用search接口的Sort参数即可达成,完全不需要像某...

Lucene评分算法解释
Java

Lucene评分算法解释

hankcs阅读(4924)评论(0)

Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来。这里用一个中文实例来纯手工验算一遍Lucene的评分算法,并且结合Lucene的源...

我的开源项目

HanLP自然语言处理包基于DoubleArrayTrie的Aho Corasick自动机