- 博客(11)
- 收藏
- 关注
转载 拼音搜索
拼音搜索目前在中文搜索领域应用非常广泛。看了一些同行的文章,基本上是做n-gram算法切分子串,然后根据同义词的原理,搜索相关的词。这样在保证查全率的同时,在精度上有不小的损失。个人的理解是这样,在建立索引的阶段,用拼音组件将汉字转换成拼音,然后用正则去完成拼音字符的提取。比如zhangsan...
2016-11-23 15:21:00
518
转载 Lucene纠错(SpellCheck)的基本原理和源代码分析
纠错或称为拼写检查(SpellCheck),是搜索领域的一个常见场景,当用户输入错误的时候,给用户一个正确的搜索建议,比如微博搜索,输入“裁绝”时,会有一个提示,提示用户输入的是不是“裁决”,这是最典型的纠错场景。 Lucene的纠错模块位于Lucene-Suggest .jar包里面的...
2016-11-03 16:55:00
722
转载 Lucene中的PriorityQueue
在看Spellcheck源代码的时候,一直以为Lucene中的PriorityQueue是JDK默认实现的优先级队列,所谓优先队列,顾名思义,其实就是一个最小堆的实现,通过每次取堆上的最小元素,进行堆排序。但实际上,Lucene自己定义了一个优先队列(Lucene中的优先队列是一个抽象类,可以...
2016-11-01 18:51:00
207
转载 IndexSearcher 排序搜索中的doMaxScore的参数设置
IndexSearcher在进行排序的时候,可以设置两个参数,doDocScores和doMaxScore,对于排序来说,计算分数本身没有意义,因此,默认情况下,排序后命中的文档是不计算得分,但是,通常排序是多维度的,可能也需要文档得分的参考,这时候就需要进行相关的设置,这也意味着更多的系统开...
2016-10-21 11:01:00
247
转载 Lucene Facet-维度搜索(1)
Lucene Facet包一度让我感到困惑不解。我一直不太明白,为什么需要Facet包,按照简单的设想,既然需要分类搜索,只需要建立不同的分类域就可以啦,然后根据域值写不同的Query或者Filter做针对性过滤就可以了,反映在界面上,就是提供不同的下拉框或者链接让用户选择就好了。 可问题往...
2016-10-11 17:50:00
159
转载 Lucene4.X中的自定义评分机制
之前写过Lucene3.X中的自定义评分机制,Lucene在4.0中相应的接口有个很大的改变。究其根本,是因为Lucene在4.0中提出了DocValue的概念,可以将doc id与 field value映射关系存放到索引文件中(实际上,索引文件中同时也存放了很多统计的信息,比如词频之类)。...
2016-07-22 18:30:00
162
转载 Lucene3.X中的自定义评分机制
在lucene中,有一套默认的打分规则(关于打分规则,网上文章很多),一般情况下,开发者只需要针对field或者query做一些boost调优就可以了(比如,对于标题field和内容field设置不同的boost)。这适合大部分的场景。但lucene也提供了一套更改默认打分规则的方法,开发者可...
2016-07-22 14:35:00
134
转载 lucene 4.X 中的域缓存(FieldCache)和DocValue
Lucene在3.0提出了域缓存(FieldCache)的概念,这个API主要是在内部使用,但开发者也可以外部调用,在自定义排序或者自定义评分的时候都涉及到相关的接口。准确的说,就是将相关的域的值加载到内存中,形成一维数组。加载域缓存,并不要求相关域的值必须在索引中store,而是要求必须In...
2016-07-20 16:47:00
294
转载 lucene自定义排序
lucene本身提供很多默认的排序方式,比如根据相关度,写入索引的顺序,域的值等等,提供正向或者逆向的排序,大部分情况下,这已经能满足我们的基本要求。但在实际的应用中,也有一些需求,需要搜索的结果,依据搜索内容进行排序,比如在搜跟当前位置相关的对象时,需要根据距离的远近,来对返回的结果进行排序...
2014-11-06 17:04:00
258
转载 Redis的安装、升级和基本配置
Redis是一个常用的nosql数据库,主要用来做后台的缓存。make成功之后,bin命令保存在/usr/local/bin目录,通常可以按照默认方式启动。但这种方式并不便于日常的运维和管理,也不便于对redis进行更精确和复杂的控制,比如后台启动,日志文件的配置,集群主从机之间拷贝,dump...
2014-09-25 10:43:00
395
转载 Linux文件句柄配置
Linux系统中,对于系统和用户在同一时间打开的文件数目有限制,又因为在linux系统中,“一切都是文件”,如果系统和用户的文件数目达到最大限制,有可能造成系统服务不能正常使用。而CentOS系统默认适配低端平台,默认数值只有1024,在实际的生产(线上)环境中,这个数值远远不够,需要对其做出...
2013-12-27 15:48:00
321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人