当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

lunce创建索引及简单查询

发表于: 2014-07-02   作者:chengxuyuancsdn   来源:转载   浏览:
摘要: 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.Docume
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创建索引及简单查询

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
随着信息时代的来临,数据库已经应用到了越来越多的生产环境中。使用数据库的主要目的就是方便快速
利用空闲时间写了一个使用lucene创建索引简单示例, 1.使用maven创建的项目 2.需要用到的jar如下:
利用空闲时间写了一个使用lucene创建索引简单示例, 1.使用maven创建的项目 2.需要用到的jar如下:
1. 在oracle8以上的版本中,可以使用以下语句进行索引名称和创建索引语句的查询。 SELECT INDEX_NAME
索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分
  在昨天的SQL Server 查询性能优化——创建索引原则(一)主要介绍了一下原理,今天是一些主要的
  本文主要作为优化查询性能的一些知识储备,感觉知识点有些散,不知道起啥名字好,独立成文又没
索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分
(1) 分析现有环境下,查询如下语句的执行情况(需存在索引IX_Workorder_StartdateEnddate(Startdate,
SQL Server查询性能优化之创建合理的索引(上) 本文主要作为优化查询性能的一些知识储备,感觉知识
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号