一、特定查询
基本是对一个域进行匹配单一的匹配查询
Term term=new Term("name","小小"); TermQuery query=new TermQuery(term); TopDocs hits=searcher.search(query,10);
二、QueryParse的简单用法
基本是对输入的查询先分词然后生成Query的子类,这样是查询共能更加的灵活和强大
QueryParse pq=new QueryParse("版本",域,分词器); Query q=pq.parse("内容");
内容有些基本的格式
java 默认包含 java junit /java or junit 包含一个或者两个 +java +junit /java and junit 两个都包含 title:ant title域中包含ant title:extreme -subject:sports title中包含切subject中没有 /title:extreme and not subject:sprots sprots (agile or extreme) and method 默认域包含前面的一个或者两但一定包含metod title:"junit in action" title域为junit in action的文档 title:"junit action "~5 title域中junit 和action 之间距离小于5的文档 java* 前缀是java的文档 java~ 包含相似的文档lava lastmodified:(1/1/09~12/31/09) lastmodified域在第一个日期和第二个日期之间
练习下简单的搜索
QueryParse qp=new QueryParse(版本,域,分词); Query q=qp.parse("name: 小* and not ype:天灾") 查询的是名字是前缀是小,但是不是天灾的。
结果
阵营==近卫 名字==小小 id==2 阵营==近卫 名字==小牛 id==4
搜索
QueryParser q=new QueryParser(Version.LUCENE_42, "name", new SmartChineseAnalyzer(Version.LUCENE_42)); query=q.parse("name: 小*");
结果:
阵营==近卫 名字==小小 id==2 阵营==近卫 名字==小牛 id==4 阵营==天灾 名字==小黑 id==5
三、IndexSearch的基本用法
声明
IndexSearch serch=new IndexSearch(IndexReader); IndexReader的消耗的资源很多,一般一个IndexReader重复使用 reOpen();用于索引的改变时重新打开 多线程使用的时候注意线程安全,并关闭老的IndexReader
search()的常用方法
TopDocs search(query,int) 返回评分高的前N个 TopDocs search(query,Filter,int) 受文档子集约束,约束基于过滤策略 TopFileldDocs search(query,Filter,int,sort)......排序 void search(query,Collector) 不想返回前N个 void search(query,Filter,Collector)...有过滤策略
四TopDocs常用方法
totalHits 匹配搜索条件的文档那个数 getMaxScore 最大的评分数 ScoreDocs 匹配文档的一个集合
五、多样化的查询
TermQuery 关键字进行查询 TermRangeQuery 进行一个查询范围选择 NumercRangeQuery 对数字进行范围的一个查询 PrefixQuery 层次递归进行查询通过字符串进行搜索 BooleanQuery 综合查询允许进行进行组合操作的逻辑运算 BooleanClause.Occur.Must and .............................SHOULD or PhraseQuery 短语搜索 WildCardQuery 通配符查询 */? FuzzyQuery 模糊查询 MatchAllDocsQuery 匹配所有的
相关推荐
我自己写的一个lucene搜索引擎的简单入门例子源代码 对照lucene,相当的易懂。api我这也有,含JE分词器。
Lucene创建索引,查询索引的简单使用。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
lucene5.5.5, Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,...
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
第一章 LUCENE基础 2 1.1 索引部分的核心类 2 1.2 分词部分的核心类 2 1.3 搜索部分的核心类 2 第二章 索引建立 3 2.1 创建Directory 3 2.2 创建Writer 3 2.3 创建文档并且添加索引 4 2.4 查询索引的基本信息 5 2.5 ...
简单的lucene4.0样例,包含新增和查询功能,包含lucene4.0jar包,适合jdk1.6。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
jsuop+lucene 实现简单的新闻爬去、全文索引查询
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
这是我通过对Lucene3.3.0源码进行了简单解读,依据应用详细的做了很多Demo,大家可以一道学习。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
全文检索首先将要查询的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的。这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-...这是一个使用lucene开源框架编写的一个简单的搜索功能
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...