`
chengxuyuancsdn
  • 浏览: 7978 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

lunce创建索引及简单查询

阅读更多
import java.io.File;
import java.io.IOException;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;

public class LunceUtil {
	 Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
	 public  void searchContext(String indexPath,String searchContext) throws IOException{
		
		    Directory  directoryIndex=FSDirectory.open(new  File(indexPath));
			DirectoryReader ireader = DirectoryReader.open(directoryIndex);
		    IndexSearcher isearcher = new IndexSearcher(ireader);
		    QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "fieldname", analyzer);
		    Query query=null;
			try {
				query = parser.parse(searchContext);
			} catch (ParseException e) {
				e.printStackTrace();
			}
		    ScoreDoc[] hits = isearcher.search(query, null, 10000).scoreDocs;
			for (int i = 0; i < hits.length; i++) {
			    	Document hitDoc=null;
			    	hitDoc = isearcher.doc(hits[i].doc);
			    	System.out.println(hitDoc.get("fieldname"));
			} 
			ireader.close();
			directoryIndex.close();
	   }
	   public  void createIndex(String indexPath,String context) throws IOException{
	//////////////创建索引/////////////////////////////////////////////////
		   
			 IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer);
			 //来将文档加入索引
			 
		    //生成一个索引写入器
			// Analyzer是分析器,它的作用是把一个字符串按某种规则划分成一个个词语,并去除其中的无效词语,
			IndexWriter iwriter=new IndexWriter(FSDirectory.open(new  File(indexPath)), config);
			/////////////////////////////////////////////////////////////
			//从网站上抓取的内容用户进行搜索创建索引,也是以Document列表的形式返回。
//		    Document doc1 = new Document();
//		    Document doc2=new Document();
//		    String text1 = "Robitussin leyiduo";
//		    String text2="tis a indexed.";
//		    doc1.add(new Field("fieldname", text1, TextField.TYPE_STORED));
//		    doc2.add(new Field("fieldname", text2, TextField.TYPE_STORED));
//			iwriter.addDocument(doc1);
//			iwriter.addDocument(doc2);
			Document doc = new Document();
			doc.add(new Field("fieldname",context,TextField.TYPE_STORED));
			iwriter.addDocument(doc);
			iwriter.close();
	   }
}
分享到:
评论

相关推荐

    搜索引擎Lunce快速入门

    创建索引是Lunce的第一步。以下是一个简单的示例,演示如何索引一个文件: 1. 导入必要的库: ```java import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document...

    深入理解Luncen搜索引擎开发

    它可以为你的应用程序添加索引和搜索能力。Lucene是用java实现的、成熟的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于Apache软件许可 [ASF, License]。同样,Lucene是当前非常流行的、免费的Java信息...

    luncene.net 完整实例

    2. **创建索引写入器(IndexWriter)**:使用 Analyzer 创建 IndexWriter 实例,设置索引目录和其他配置参数。 3. **添加文档(Document)**:每个要索引的文件被视为一个 Document 对象,包含多个 Field,每个 ...

    lunce----------教程

    以下是一个简单的示例,展示了如何使用Lucene创建索引: ```java IndexWriter writer = new IndexWriter("/data/index/", new StandardAnalyzer(), true); Document doc = new Document(); doc.add(new Field("title...

    基于Luncene的compass框架详解-java

    2. **配置环境**: 在项目中引入Compass及相关jar包,进行必要的环境配置,如设置搜索索引存储位置、初始化Compass环境等。 3. **实体类标注**: 使用Compass提供的注解如`@Searchable`、`@SearchableId`、`@...

    lucene视图工具 lukeall

    3. **查询分析**:用户可以直接在工具中输入查询语句,查看查询如何被解析并转换为内部的查询树结构,这有助于理解Lucene的查询执行机制。 4. **术语浏览器**:它提供了对所有索引术语的可视化,包括出现频率、文档...

    lucene 孔浩 源码

    4. **索引写入(IndexWriter)**:用于创建或更新索引,它管理着索引的生命周期,包括添加、删除和更新文档。孔浩的讲解可能会涵盖如何正确使用IndexWriter避免数据丢失和提高性能。 5. **查询解析(QueryParser)*...

    基于Lucene的Web站内信息搜索系统

    搜索时,Lucene会将查询与索引中的词项进行匹配,找出包含查询词的文档。然后,根据相关性评分(Scoring)对结果进行排序。相关性评分通常基于TF-IDF(Term Frequency-Inverse Document Frequency)算法,考虑词项在...

    lucene-demo

    lucene-简单示例介绍,可提供初级的api,实现全文检索功能

    Lucene Server-开源

    1. **索引管理**:它允许用户创建、更新和删除Lucene索引,无需深入理解底层的实现细节。这使得非技术背景的用户也能轻松管理搜索索引。 2. **分布式支持**:在分布式环境中,Lucene Server可以处理跨多个节点的...

    lucene4.3源码

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    JAVA面试题目讲解

    - 类与对象:理解类的定义、对象的创建及成员变量、方法的使用。 - 继承与多态:深入理解继承的概念,以及多态性在Java中的体现,如方法重写和重载。 - 封装:封装的基本原则和实现方式,包括访问修饰符的使用。 ...

    丽华宅急送

    技术:myeclipse+spring+struts2+hibnate+lunce+poi+ztree+mysql+jbpm 功能:基本信息的录入(poi导入)包括省、市、区,菜单导航树形结构,取派业务,lunce的信息检索,一件上传功能,工单的接收,等。。。。。

Global site tag (gtag.js) - Google Analytics