luncene是一个 文本搜索引擎工具库,使用简单
1, 创建索引
File indexDir=new File("c:\\temp\\index");
File dataDir=new File("c:\\temp\\data");
IndexWrtier writer=new IndexWriter(indexDir,new StandarAnalyzer(),true);
writer.setUseCompoundFile(false);
Document doc=new Docment();
doc.add(Field.Text("contents",new FileReader(f));
doc .add(Field.Keyword("filename",f.getCanonicalPath()));
writer.addDocument(doc);
writer.optimize();
writer.close();
2, 搜索
Directory fsDir=FSDirectory.getDirectory(indexDir,false);
IndexiSearcher is = new IndexSearcher(fsDir);
String q="google";
Query query=QueryParser.parse(q,"contents",new StandardAnalyzer());
Hits hits=is.search(query);
for(int i=0;i<hits.length();i++){
Document doc=hits.doc(i);
System.out.println(doc.get("filename"));
}
3, Field 类
Keyword: 不需要分析,但是会被逐字逐句的被索引并存储。适合URL, 文件系统路径,日期,个人姓名。
UnIndexed: 既不被分析也不索引,但会被存储在索引文件里
UnStored: 与UnIndexed相反,会分析索引,但不会存储,适合大数据文件,如网页正文
Text:需要分析索引,string 存储,Reader不存储
4, 优化
1, 可追加域
String baseWord="fast";
String synonyms[]=String{"quick","rapid","speedy"};
Document doc=new Document();
doc.add(Field.Tex("word", baseWord);
for(int i=0;i<synonyms.length;i++){
doc.add(Filed.Text("word",synonyms[i]));
}
2, 使用内部编号删除文档
IndexReader reader=new IndexReader.open(dir);
reader.delete(1);
reader.maxDoc();
reader.numDocs();
reader.delete(new Term("city","beijin"));
通过批量删除更新:
1, 打开IndexReader对象
2, 删除所有需要删除的Document对象
3,关闭IndexReader
4, 打开IndexWriter
5, 添加所需要的Document
6, 关闭IndexWriter
3, doc.setBosst(1.0) 可加强索引重要性比重
4, writer.mergeFactor, maxMergeDocs, minMergeDocs 值提高性能
5, 内存索引 RAMDirectory 会把索引放在内存中获得最高性能
6. writer.maxFieldLength 限制搜索数量,如果数据量大的话这个很有用
分享到:
相关推荐
luncene.Net luncene.Net luncene.Net luncene.Net
luncene,paoding 分词,研究luncene需要的支撑庫,带高亮jar
luncene索引PDF、Html、word.txt luncene索引PDF、Html、word.txt luncene索引PDF、Html、word.txt
luncene in action中文版 doc格式
学习ASP.NET with Luncene.net入门级文章!
Luncene2.0+Heritrix开发自己的搜索引擎,02,07,09章节的代码
Luncene的API,详细接受了Luncene的使用方法
luncene api没什么作用,你可以到官网上下啊!
Lucene3.0从入门到精通,适合所有想做全文检索,垂直搜索方面的开发人员。从简单到深入,各种例子,各种注释很齐全。
luncene in action 003
luncene in action002
luncene 4.6 自定义查询评分规则
站内搜索基于luncene的java搜索
基于Luncene的compass框架详解-java
Luncene2.0+Heritrix开发自己的搜索引擎,项目的代码
基于Java的Luncene的compass框架说明使用技术文档.pdf
中文分词器 mmseg4j luncene5.X 源码 jar包
luncene建索引的基本实例,适合初学者学习使用
Lucene 排序,luncene多条件搜索,一个很全的Lucene学习笔记。