小编对于Lucene是个新手,完全不懂。以此作为一个学习的笔记。 最近刚接手了一个项目基于Solr、Lucene的全文检索。项目总体不算复杂,只不过核心是Lucene, 所以,必须好好学习一下Lucene。 以传智的Lucene3.0视频资料为基础。 自取:http://pan.baidu.com/ ...
分类:
Web程序 时间:
2017-05-12 13:19:53
阅读次数:
179
Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来。这里用一个中文实例来纯手工验算一遍Lucene的评分算法,并且结合Lucene的源码做一个解释。 首先是测试用例,我使用“北京东路”来检索一个 ...
分类:
其他好文 时间:
2017-04-06 19:45:16
阅读次数:
2293
JavaClient 查询ES QueryBuilder queryBuilder = QueryBuilders.termQuery("字段","term值"); SearchResponse response = client.prepareSearch("索引名称") .setTypes("t ...
分类:
其他好文 时间:
2016-12-01 21:09:12
阅读次数:
333
第一、按词条搜索 - TermQuery query = new TermQuery(new Term("name","word1"));hits = searcher.search(query); 这样就可以把 field 为 name 的所有包含 word1 的文档检索出来了。 第二、“与或”搜 ...
分类:
Web程序 时间:
2016-11-29 22:33:18
阅读次数:
214
package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; import java.util.List; im ...
分类:
Web程序 时间:
2016-11-29 22:12:10
阅读次数:
201
在lucene的搜索中,最重要的无疑就是对query的理解和掌握了。这里扒拉一下源码(版本3.5.0)的query和query实现: query是一个抽象类,实现类有以下几个: termQuery multiTermQuery booleanQuery* wildCardQuery PhraseQu ...
分类:
Web程序 时间:
2016-06-19 14:16:43
阅读次数:
410
第一、按词条搜索 - TermQuery 这样就可以把 field 为 name 的所有包含 word1 的文档检索出来了。 第二、“与或”搜索 - BooleanQuery 它实际是一个组合 query 看看下面的代码: 其中的MUST、SHOULD、MUST_NOT表示与、或、非 ,从字面意思很 ...
分类:
Web程序 时间:
2016-05-13 08:08:52
阅读次数:
277
TermQuery是最简单、也是最常用的Query。TermQuery可以理解成为“词条搜索”,在搜索引擎中最基本的搜索就是在索引中搜索某一词条,而TermQuery就是用来完成这项工作的。 在Lucene中词条是最基本的搜索单位,从本质上来讲一个词条其实就是一个名/值对。只不过这个“名”是字段名,
分类:
Web程序 时间:
2016-03-01 21:01:21
阅读次数:
248
原文:Lucene提供的条件判断查询第一、按词条搜索 - TermQuery query = new TermQuery(new Term("name","word1"));hits = searcher.search(query); 这样就可以把 field 为 name 的所有包含 word1 ...
分类:
Web程序 时间:
2015-06-26 14:57:25
阅读次数:
105
我们在使用BoooleanQuery的时候,有的时候想要命中其中的至少N项,就会用到setMinimumNumberShouldMatch方法。比如:BooleanQuery bq = new BooleanQuery();bq.add(new TermQuery(new Term("title",...
分类:
Web程序 时间:
2015-05-28 15:54:31
阅读次数:
188