正在学习lucene中,先贴一小段代码做个记念!
public class FirstDemo {
public static void main(String[] args) throws Exception {
File file = new File("c:\\index");
IndexWriter indexWriter = new IndexWriter(file, new StandardAnalyzer(),
true);
Document document = new Document();
document.add(new Field("name", "word and word", Field.Store.YES,
Field.Index.TOKENIZED));
indexWriter.addDocument(document);
indexWriter.close();
IndexSearcher indexSearcher = new IndexSearcher("c:\\index");
QueryParser queryParser = new QueryParser("name",
new StandardAnalyzer());
Query query = queryParser.parse("word");
Hits hits = indexSearcher.search(query);
System.out.println("查找到" + hits.length() + "个结果");
}
}
1.以下是使用lucene2.0版本后要注意的:
Field没了Keyword、UnIndexed、UnStored、Text这几个静态成员,只能用
Field(String, String, Store, Index)。
Keyword对应Field.Store.YES, Field.Index.UN_TOKENIZED,
UnIndexed 对应Field.Store.YES, Field.Index.NO,
UnStored对应Field.Store.NO, Field.Index.TOKENIZED,
Text对应Field.Store.YES, Field.Index.TOKENIZED。
2.构建各种Query
TermQuery:词条查询
query = new TermQuery(new Term("name", "word1"));
BooleanQuery:与或查询
query = new BooleanQuery();
BooleanClause booleanClause1=new BooleanClause(query1,BooleanClause.Occur.SHOULD);
query.add(booleanClause1);
RangeQuery:范围查询
Term beginTime = new Term("time","200001");
Term endTime = new Term("time","200005");
query = new RangeQuery(beginTime, endTime, false);
PrefixQuery:前缀查询
Term term= new Term("name", "s");
query = new PrefixQuery(term);
PhraseQuery:多关键字搜索
Term word1 = new Term("content", "keep");
Term word2 = new Term("content","moving");
query = new PhraseQuery();
query.add(word1);
query.add(word2);
/*
对两个紧密相连的关键字,无论slop设置多少,Lucene总能找到它所在的文档,而对两个不
紧连的关键字,如果slop小于它们之间无关词的数量,那么则无法找到.其实,当两个关键字之间的无关词数小于等于坡度值时,总是可以被找到.
*/
query.setSlop(0);
FuzzyQuery:模糊查询
Term term= new Term("content", "da");
FuzzyQuery query = new FuzzyQuery(term);
WildcardQuery:通配符查询
//"*"代表0至多个字符,"?"代表1个字符
Term word1 = new Term("content", "*ever");
Term word2 = new Term("content", "wh?ever");
query = new WildcardQuery(word1);
分享到:
相关推荐
视频详细讲解,需要的小伙伴...学习Lucene对日后学习它的下游技术产品ElasticSearch和Solr将会大有帮助。 系统的学习Lucene全文检索技术,全面掌握搜索原理和底层知识,为学习其他应用层面搜索技术打下坚实的基础。
lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习...
data.rar学习lucene需要的数据文件 data.rar学习lucene需要的数据文件
一步一步跟我学习lucene是对近期做lucene索引的总结,
此博文是对近期做lucene索引的总结, (lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,希望大家关注呦
压缩文件包括lucene-core-3.5.0.jar、mmseg4j-all-1.8.5.jar、mmseg4j-all-1.8.5-with-dic.jar、tika-app-1.0.jar、lukeall-3.5.0.jar、commons-io-2.1.jar。
lucene学习的基本代码资料,里面有nutch扩展爬虫代码,可以抓取网页信息,新闻信息等,代码很详细,初学者的好帮手。
露西娜·德莫(LuceneDemo) 学习Lucene 这是最初的Lucene浸提项目。 将git项目导入到您的eclipse中。 安装pom。 运行java示例以查看lucene的效果。
希望大家可以关注我的博客http://blog.csdn.net/wuyinggui10000/article/category/3173543
对学习lucene开发的人员来说这个项目非常有价值 值得参考">项目的页面都存在WebRoot WEB INF jsp下 网上搜索博客园网页的地址 输入到相应搜索框 该项目可以自动对博客园网站中的文章 项目中限制了文章数量 建立...
lucene5 这是我在学习lucene5时自己写的一个关于lucene5的示例程序,现在分享给所有喜欢Lucene的人。
Lucene7.4官方示例,内含若干官方实例,可用于学习Lucene
学习Lucene的最好资料!
Lucene的的学习资料及案例,包括一个lucene的学习资料总结。供大家学习使用,也有本人写的一个小案例。
现在我们学习lucene主要是学习如何使用别人开源的东西,来组建自己想要的搜索引擎系统。 在这里我是和大家共同讨论学习lucene,前些日子我先简单的学习了一下,下面给大家具体的介绍一下lucene.
lucene-core-.jar paoding-analysis-2.0.4-beta
学习搜索引擎时,大家往往不能够理清搜索引擎的脉络,通过这本思维导图,大家可以理解学习思路,里面有一些代码,帮助大家更好更快地学习Lucene.
这是笔者近期学习Lucene.net时所看书籍,受益良多,希望可以帮助更多人。包括Lucene快速学习手册、Lucene实战、Lucene搜索引擎开发进阶三份文档。
学习Lucene最好的资料,打包下载,很好的
Lucene的基础知识 1、案例分析:什么是全文检索,如何实现全文检索 2、Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3、配置开发环境 4、创建索引库 5、查询索引库 6、分析器的分析过程 a) 测试分析器的分词...