E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
lucene5
Lucene5
学习之Group分组统计
Group即分组,类似SQL里的groupby功能,Lucene中分组是通过内置的几种Collector结果集收集器实现的,有关group的结果集收集器都在org.apache.lucene.search.grouping包及其子包下, 包含group关键字的Collector都是有关Group分组的结果收集器,如果你只需要统计如下这些分组信息:/**所有组的数量*/ inttotalGr
·
2015-04-15 04:00
学习
group
lucene5
Lucene5
学习之自定义Collector
你们都睡了,而我却在写博客,呵呵!我也不知道为什么都夜深了,我却还没一点困意,趁着劲头赶紧把自定义结果集写完,已经拖了2天没更新了,不能让你们等太久,我也要把写博客一直坚持下去。 Collector是什么?还是看源码吧。这也是最权威的解释说明。/** *Expert:Collectorsareprimarilymeanttobeusedto *gatherrawresultsfr
lxwt909
·
2015-04-14 01:00
Lucene
Collector
Lucene5
学习之自定义Collector
你们都睡了,而我却在写博客,呵呵!我也不知道为什么都夜深了,我却还没一点困意,趁着劲头赶紧把自定义结果集写完,已经拖了2天没更新了,不能让你们等太久,我也要把写博客一直坚持下去。 Collector是什么?还是看源码吧。这也是最权威的解释说明。/** *Expert:Collectorsareprimarilymeanttobeusedto *gatherrawresultsfr
lxwt909
·
2015-04-14 01:00
Lucene
Collector
Lucene5
学习之自定义排序
在
Lucene5
学习之排序-Sort中,我们已经学习了Sort的用法,已经了解了,Lucene搜索返回的命中结果默认是按照索引文档跟搜索关键字的相关度已经排序的,而相关度又是基于内部的打分机制和索引文档
lxwt909
·
2015-04-11 21:00
Lucene
CustomScore
Lucene5
学习之自定义排序
在
Lucene5
学习之排序-Sort中,我们已经学习了Sort的用法,已经了解了,Lucene搜索返回的命中结果默认是按照索引文档跟搜索关键字的相关度已经排序的,而相关度又是基于内部的打分机制和索引文档
lxwt909
·
2015-04-11 21:00
Lucene
CustomScore
Lucene5
学习之FunctionQuery功能查询
我猜,大家最大的疑问就是:不是已经有那么多Query实现类吗,为什么又设计一个FunctionQuery,它的设计初衷是什么,或者说它是用来解决什么问题的?我们还是来看看源码里是怎么解释FunctionQuery的: 意思就是基于ValueSource来返回每个文档的评分即valueSourceScore,那ValueSource又是怎么东东?接着看看ValueSource源码里的注
lxwt909
·
2015-04-11 13:00
Lucene
FunctionQuery
ValueSource
Lucene5
学习之FunctionQuery功能查询
我猜,大家最大的疑问就是:不是已经有那么多Query实现类吗,为什么又设计一个FunctionQuery,它的设计初衷是什么,或者说它是用来解决什么问题的?我们还是来看看源码里是怎么解释FunctionQuery的: 意思就是基于ValueSource来返回每个文档的评分即valueSourceScore,那ValueSource又是怎么东东?接着看看ValueSource源码里的注
lxwt909
·
2015-04-11 13:00
Lucene
FunctionQuery
ValueSource
Lucene5
学习之TermVector项向量
而
Lucene5
中内置
lxwt909
·
2015-04-10 21:00
Lucene
termvector
Lucene5
学习之TermVector项向量
而
Lucene5
中内置
lxwt909
·
2015-04-10 21:00
Lucene
termvector
Lucene5
学习之CustomScoreQuery
虽然前面我们已经集中学习过Query,但CustomScoreQuery当初略过了,今天就来学学这个Query.从类名上看,顾名思义,就大不略的猜得到它的干嘛用的。它是用来进行干预查询权重的,从而影响最终评分的,即评分公式中的queryNorm部分。 一个索引文档的评分高低意味着它的价值大小,有价值的索引文档会优先返回并靠前显示,而影响评分的因素有Term在document中的出现频率,
lxwt909
·
2015-04-09 21:00
Lucene
Lucene5
学习之CustomScoreQuery
虽然前面我们已经集中学习过Query,但CustomScoreQuery当初略过了,今天就来学学这个Query.从类名上看,顾名思义,就大不略的猜得到它的干嘛用的。它是用来进行干预查询权重的,从而影响最终评分的,即评分公式中的queryNorm部分。 一个索引文档的评分高低意味着它的价值大小,有价值的索引文档会优先返回并靠前显示,而影响评分的因素有Term在document中的出现频率,
lxwt909
·
2015-04-09 21:00
Lucene
Lucene5
学习之评分Scoring
评分机制是Lucene的核心部分之一。Lucene默认是按照评分机制对每个Document进行打分,然后在返回结果中按照得分进行降序排序。内部的打分机制是通过Query,Weight,Scorer,Similarity这几个协作完成的。想要根据自己的业务对默认的评分机制进行干预来影响最终的索引文档的评分,那你必须首先对Lucene的评分公式要了解: coord(q,d):这里q即que
lxwt909
·
2015-04-08 17:00
Lucene
score
Payload
Lucene5
学习之评分Scoring
评分机制是Lucene的核心部分之一。Lucene默认是按照评分机制对每个Document进行打分,然后在返回结果中按照得分进行降序排序。内部的打分机制是通过Query,Weight,Scorer,Similarity这几个协作完成的。想要根据自己的业务对默认的评分机制进行干预来影响最终的索引文档的评分,那你必须首先对Lucene的评分公式要了解: coord(q,d):这里q即que
lxwt909
·
2015-04-08 17:00
Lucene
score
Payload
Lucene5
学习之增量索引(Zoie)
清明节放假期间,就一直在思考着Lucene增量索引问题,通过google我了解到了Zoie的存在,于是就开始2天的学习Zoie之旅,对Zoie的原理以及使用基本掌握,还特地使用Zoie实现了Lucene索引增量索引。不过Zoie已经好久没更新了,Zoie目前版本只支持到Lucene4.3.0,为此我花了2个多小时,修改了Zoie的源码将它升级使其支持Lucene5.0,我修改过的Zoie最新
lxwt909
·
2015-04-07 10:00
Lucene
zoie
Incremental
Lucene5
学习之增量索引(Zoie)
清明节放假期间,就一直在思考着Lucene增量索引问题,通过google我了解到了Zoie的存在,于是就开始2天的学习Zoie之旅,对Zoie的原理以及使用基本掌握,还特地使用Zoie实现了Lucene索引增量索引。不过Zoie已经好久没更新了,Zoie目前版本只支持到Lucene4.3.0,为此我花了2个多小时,修改了Zoie的源码将它升级使其支持Lucene5.0,我修改过的Zoie最新
lxwt909
·
2015-04-07 10:00
Lucene
zoie
Incremental
Lucene5
学习之Filter过滤器
今天从早上9点起来,就中午做个饭,一坐就是整整10个小时,照着我预想的计划继续记录我的
Lucene5
学习轨迹,由于Filter体系下子类有点多,还
lxwt909
·
2015-04-04 20:00
filter
Lucene
Lucene5
学习之Filter过滤器
今天从早上9点起来,就中午做个饭,一坐就是整整10个小时,照着我预想的计划继续记录我的
Lucene5
学习轨迹,由于Filter体系下子类有点多,还
lxwt909
·
2015-04-04 20:00
filter
Lucene
Lucene5
学习之QueryParser-Query解析器
Lucene已经给我们提供了很多Query查询器,如PhraseQuery,SpanQuery,那为什么还要提供QueryParser呢?或者说设计QueryParser的目的是什么?QueryParser的目的就是让你从众多的Query实现类中脱离出来,因为Query实现类太多了,你有时候会茫然了,我到底该使用哪个Query实现类来完成我的查询需求呢,所以Lucene制定了一套Query语法
lxwt909
·
2015-04-02 14:00
Lucene
QueryParser
Lucene5
学习之QueryParser-Query解析器
Lucene已经给我们提供了很多Query查询器,如PhraseQuery,SpanQuery,那为什么还要提供QueryParser呢?或者说设计QueryParser的目的是什么?QueryParser的目的就是让你从众多的Query实现类中脱离出来,因为Query实现类太多了,你有时候会茫然了,我到底该使用哪个Query实现类来完成我的查询需求呢,所以Lucene制定了一套Query语法
lxwt909
·
2015-04-02 14:00
Lucene
QueryParser
Lucene5
学习之排序-Sort
这回我们来学习Lucene的排序。机智的少年应该已经发现了,IndexSearcher类的search方法有好几个重载: /**Findsthetopn *hitsforquery. * *@throwsBooleanQuery.TooManyClausesIfaquerywouldexceed *{@linkBooleanQuery#getMaxClauseCount()}
lxwt909
·
2015-04-01 21:00
Lucene
sort
Lucene5
学习之排序-Sort
阅读更多这回我们来学习Lucene的排序。机智的少年应该已经发现了,IndexSearcher类的search方法有好几个重载:/**Findsthetopn*hitsforquery.**@throwsBooleanQuery.TooManyClausesIfaquerywouldexceed*{@linkBooleanQuery#getMaxClauseCount()}clauses.*/pu
lxwt909
·
2015-04-01 21:00
Lucene
Sort
Lucene5
学习之排序-Sort
阅读更多这回我们来学习Lucene的排序。机智的少年应该已经发现了,IndexSearcher类的search方法有好几个重载:/**Findsthetopn*hitsforquery.**@throwsBooleanQuery.TooManyClausesIfaquerywouldexceed*{@linkBooleanQuery#getMaxClauseCount()}clauses.*/pu
lxwt909
·
2015-04-01 21:00
Lucene
Sort
Lucene5
学习之排序-Sort
这回我们来学习Lucene的排序。机智的少年应该已经发现了,IndexSearcher类的search方法有好几个重载: /**Findsthetopn *hitsforquery. * *@throwsBooleanQuery.TooManyClausesIfaquerywouldexceed *{@linkBooleanQuery#getMaxClauseCount()}
lxwt909
·
2015-04-01 21:00
Lucene
sort
Lucene5
学习之自定义同义词分词器简单示例
阅读更多同义词功能在全文搜索时的意义,大家应该都懂的。今天中文我就试着写了一个同义词分词的示例demo,其实主要代码还是参考LuceneinAction这本英文版书籍的随书代码,只不过LuceneninAction书里的示例代码目前最新版只支持到Lucene4.x,对于Lucene5.x,代码需要稍作修改,下面是基于Lucene5.x的自定义同义词分词器demo:packagecom.yida.f
lxwt909
·
2015-03-31 13:00
Lucene
同义词
Lucene5
学习之自定义同义词分词器简单示例
同义词功能在全文搜索时的意义,大家应该都懂的。今天中文我就试着写了一个同义词分词的示例demo,其实主要代码还是参考LuceneinAction这本英文版书籍的随书代码,只不过LuceneninAction书里的示例代码目前最新版只支持到Lucene4.x,对于Lucene5.x,代码需要稍作修改,下面是基于Lucene5.x的自定义同义词分词器demo: packagecom.yida.f
lxwt909
·
2015-03-31 13:00
同义词
Lucene
Lucene5
学习之自定义同义词分词器简单示例
阅读更多同义词功能在全文搜索时的意义,大家应该都懂的。今天中文我就试着写了一个同义词分词的示例demo,其实主要代码还是参考LuceneinAction这本英文版书籍的随书代码,只不过LuceneninAction书里的示例代码目前最新版只支持到Lucene4.x,对于Lucene5.x,代码需要稍作修改,下面是基于Lucene5.x的自定义同义词分词器demo:packagecom.yida.f
lxwt909
·
2015-03-31 13:00
Lucene
同义词
Lucene5
学习之自定义同义词分词器简单示例
同义词功能在全文搜索时的意义,大家应该都懂的。今天中文我就试着写了一个同义词分词的示例demo,其实主要代码还是参考LuceneinAction这本英文版书籍的随书代码,只不过LuceneninAction书里的示例代码目前最新版只支持到Lucene4.x,对于Lucene5.x,代码需要稍作修改,下面是基于Lucene5.x的自定义同义词分词器demo: packagecom.yida.f
lxwt909
·
2015-03-31 13:00
同义词
Lucene
Lucene5
学习之多索引目录查询以及多线程查询
下面我们来试着采用不把多个索引目录里的数据合并到一个新的索引目录的方式去查询索引数据,当然你也可以合并(合并到一个索引目录查询就很简单了),其实很多情况我们都是不合并到一个索引目录的,那多索引目录该如何查询呢,在
Lucene5
lxwt909
·
2015-03-29 21:00
Lucene
multiThread
Search
Lucene5
学习之PhraseQuery短语查询
PhraseQuery:短语查询,就是查询文档中是否包含指定的一个Term或多个Term,多个Term之间可以指定间隔即slop参数,官方API解释如图: 使用示例代码,如下: packagecom.yida.framework.lucene5.query; importjava.io.IOException; importorg.apache.lucene.analysis.
lxwt909
·
2015-03-29 21:00
Lucene
PharseQuery
Lucene5
学习之多索引目录查询以及多线程查询
下面我们来试着采用不把多个索引目录里的数据合并到一个新的索引目录的方式去查询索引数据,当然你也可以合并(合并到一个索引目录查询就很简单了),其实很多情况我们都是不合并到一个索引目录的,那多索引目录该如何查询呢,在
Lucene5
lxwt909
·
2015-03-29 21:00
Lucene
search
multithread
Lucene5
学习之多索引目录查询以及多线程查询
下面我们来试着采用不把多个索引目录里的数据合并到一个新的索引目录的方式去查询索引数据,当然你也可以合并(合并到一个索引目录查询就很简单了),其实很多情况我们都是不合并到一个索引目录的,那多索引目录该如何查询呢,在
Lucene5
lxwt909
·
2015-03-29 21:00
Lucene
search
multithread
Lucene5
学习之多索引目录查询以及多线程查询
下面我们来试着采用不把多个索引目录里的数据合并到一个新的索引目录的方式去查询索引数据,当然你也可以合并(合并到一个索引目录查询就很简单了),其实很多情况我们都是不合并到一个索引目录的,那多索引目录该如何查询呢,在
Lucene5
lxwt909
·
2015-03-29 21:00
Lucene
multiThread
Search
Lucene5
学习之多索引目录查询以及多线程查询
下面我们来试着采用不把多个索引目录里的数据合并到一个新的索引目录的方式去查询索引数据,当然你也可以合并(合并到一个索引目录查询就很简单了),其实很多情况我们都是不合并到一个索引目录的,那多索引目录该如何查询呢,在
Lucene5
·
2015-03-29 13:00
学习
lucene5
多索
Lucene5
学习之多线程创建索引
昨晚睡觉前把多线程创建索引demo写好了,今天早上7点多就起来,趁着劲头赶紧记录分享一下,这样对那些同样对Lucene感兴趣的童鞋也有所帮助。 我们都知道Lucene的IndexWriter在构造初始化的时候会去获取索引目录的写锁writerLock,加锁的目的就是保证同时只能有一个IndexWriter实例在往索引目录中写数据,具体看截图: 而在多线程环境下,光保证只有IndexWrite
lxwt909
·
2015-03-29 08:00
多线程
Lucene
Lucene5
学习之多线程创建索引
昨晚睡觉前把多线程创建索引demo写好了,今天早上7点多就起来,趁着劲头赶紧记录分享一下,这样对那些同样对Lucene感兴趣的童鞋也有所帮助。 我们都知道Lucene的IndexWriter在构造初始化的时候会去获取索引目录的写锁writerLock,加锁的目的就是保证同时只能有一个IndexWriter实例在往索引目录中写数据,具体看截图: 而在多线程环境下,光保证只有IndexWrite
lxwt909
·
2015-03-29 08:00
多线程
Lucene
Lucene5
学习之多线程创建索引
昨晚睡觉前把多线程创建索引demo写好了,今天早上7点多就起来,趁着劲头赶紧记录分享一下,这样对那些同样对Lucene感兴趣的童鞋也有所帮助。 我们都知道Lucene的IndexWriter在构造初始化的时候会去获取索引目录的写锁writerLock,加锁的目的就是保证同时只能有一个IndexWriter实例在往索引目录中写数据,具体看截图: 而在多线程环境下,光保证只有IndexWrite
lxwt909
·
2015-03-29 00:00
多线程
学习
lucene5
Lucene5
学习之LuceneUtils工具类简单封装
周六花了整整一下午,将
Lucene5
中有关索引的常见操作进行了简单封装,废话不多说,上代码: packagecom.yida.framework.lucene5.util; importjava.io.IOException
lxwt909
·
2015-03-28 20:00
Lucene
工具类
Lucene5
学习之LuceneUtils工具类简单封装
周六花了整整一下午,将
Lucene5
中有关索引的常见操作进行了简单封装,废话不多说,上代码: packagecom.yida.framework.lucene5.util; importjava.io.IOException
lxwt909
·
2015-03-28 20:00
Lucene
工具类
Lucene5
学习之PhraseQuery短语查询
PhraseQuery:短语查询,就是查询文档中是否包含指定的一个Term或多个Term,多个Term之间可以指定间隔即slop参数,官方API解释如图: 使用示例代码,如下: packagecom.yida.framework.lucene5.query; importjava.io.IOException; importorg.apache.lucene.analysis.
lxwt909
·
2015-03-26 15:00
Lucene
PharseQuery
Lucene5
学习之SpanQuery跨度查询
SpanQuery下的子类有好几个,我就放一篇里集中说说。SpanQuery即跨度查询,首先要理解跨度这个概念,Lucene里跨度是用Spans这个类定义的,源码如下: /**Expert:anenumerationofspanmatches.Usedtoimplementspansearching. *Eachspanrepresentsarangeoftermpositionswithi
lxwt909
·
2015-03-26 12:00
Lucene
SpanQuery
Lucene5
学习之SpanQuery跨度查询
SpanQuery下的子类有好几个,我就放一篇里集中说说。SpanQuery即跨度查询,首先要理解跨度这个概念,Lucene里跨度是用Spans这个类定义的,源码如下: /**Expert:anenumerationofspanmatches.Usedtoimplementspansearching. *Eachspanrepresentsarangeoftermpositionswithi
lxwt909
·
2015-03-26 12:00
Lucene
SpanQuery
Lucene5
学习之WildcardQuery使用
WildcardQuery即通配符查询,即使用通配符来模糊查询,常见的通配符有?,*,-等等,通配符不知道怎么使用的自己Google学习下吧。照例还是先阅读官方的API文档: 特别要注意的Note后面的话,提醒我们注意,WildcardQuery查询是很慢的,因为它需要遍历很多的Term,为了避免极慢的查询速度,请不要使用以星号开头的通配符进行查询。 除了官方给的那点提醒以外,我也要提醒大
lxwt909
·
2015-03-24 22:00
Lucene
Lucene5
学习之WildcardQuery使用
WildcardQuery即通配符查询,即使用通配符来模糊查询,常见的通配符有?,*,-等等,通配符不知道怎么使用的自己Google学习下吧。照例还是先阅读官方的API文档: 特别要注意的Note后面的话,提醒我们注意,WildcardQuery查询是很慢的,因为它需要遍历很多的Term,为了避免极慢的查询速度,请不要使用以星号开头的通配符进行查询。 除了官方给的那点提醒以外,我也要提醒大
lxwt909
·
2015-03-24 22:00
Lucene
Lucene5
学习之FuzzyQuery使用
接着学习MultiTermQuery下的另一个Query子类FuzzyQuery,它用于模糊相似度查询,那这里说的相似度是如何判定的?用到的是Damerau-Levenshtein算法,具体这个算法的原理我也不是很清楚,只知道个大概,Levenshtein中文一般翻译为编辑距,何为编辑距?即两个字符串有一个转变成另一个所需要的最小的操作步骤,这里说的操作步骤指的是插入一个字符或修改一个字符或
lxwt909
·
2015-03-24 15:00
Lucene
FuzzyQuery
Lucene5
学习之FuzzyQuery使用
接着学习MultiTermQuery下的另一个Query子类FuzzyQuery,它用于模糊相似度查询,那这里说的相似度是如何判定的?用到的是Damerau-Levenshtein算法,具体这个算法的原理我也不是很清楚,只知道个大概,Levenshtein中文一般翻译为编辑距,何为编辑距?即两个字符串有一个转变成另一个所需要的最小的操作步骤,这里说的操作步骤指的是插入一个字符或修改一个字符或
lxwt909
·
2015-03-24 15:00
Lucene
FuzzyQuery
Lucene5
学习之PrefixQuery使用
继续学习Query系列的实现类,PrefixQuery即前缀查询,类似于数据库SQL里的like'java%',查询以指定前缀字符串打头的索引文档。官方API是这样解释的: 意思是这个Query是用包含指定前缀的Terms来匹配索引文档的,PrefixQuery是QueryParser根据用户的输入构建的。 这个Query很简单,没什么多说的,直接上使用示例: StringfieldNa
lxwt909
·
2015-03-24 09:00
Lucene
PrefixQuery
Lucene5
学习之PrefixQuery使用
继续学习Query系列的实现类,PrefixQuery即前缀查询,类似于数据库SQL里的like'java%',查询以指定前缀字符串打头的索引文档。官方API是这样解释的: 意思是这个Query是用包含指定前缀的Terms来匹配索引文档的,PrefixQuery是QueryParser根据用户的输入构建的。 这个Query很简单,没什么多说的,直接上使用示例: StringfieldNa
lxwt909
·
2015-03-24 09:00
Lucene
PrefixQuery
Lucene5
学习之NumericRangeQuery使用
阅读更多说到NumericRangeQuery查询,你们肯定觉得很简单,不就是数字范围查询吗?用户提供一个上限值和一个下限值,底层API里直接>min,"26"问题怎么解决?OK,可以通过在数字前面加前导零解决,“03”floatvaluetoasortablesignedint.*ThevalueisconvertedbygettingtheirIEEE754floating-point"flo
lxwt909
·
2015-03-23 17:00
Lucene
Lucene5
学习之NumericRangeQuery使用
说到NumericRangeQuery查询,你们肯定觉得很简单,不就是数字范围查询吗?用户提供一个上限值和一个下限值,底层API里直接>min,"26"问题怎么解决?OK,可以通过在数字前面加前导零解决,“03”floatvaluetoasortablesignedint. *ThevalueisconvertedbygettingtheirIEEE754floating-point"flo
lxwt909
·
2015-03-23 17:00
Lucene
Lucene5
学习之NumericRangeQuery使用
阅读更多说到NumericRangeQuery查询,你们肯定觉得很简单,不就是数字范围查询吗?用户提供一个上限值和一个下限值,底层API里直接>min,"26"问题怎么解决?OK,可以通过在数字前面加前导零解决,“03”floatvaluetoasortablesignedint.*ThevalueisconvertedbygettingtheirIEEE754floating-point"flo
lxwt909
·
2015-03-23 17:00
Lucene
上一页
1
2
3
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他