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

lucune小例

 
阅读更多
基于3.5

package com.supben;

import java.io.File;

import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;

/**
 * 索引建立类
 * 
 */
public class IndexMaker {

	private static File INDEX_DIR = new File("./index");// 索引文件夹

	public static void make(String id, String name, String desc) {

		try {
			// 字段ID,可查询,不分词
			Field ID = new Field("id", id, Field.Store.YES, Field.Index.NOT_ANALYZED);

			// 字段NAME,可查询,分词
			Field NAME = new Field("name", name, Field.Store.YES, Field.Index.ANALYZED);

			// 字段描述,可查询,分词
			Field DESC = new Field("desc", desc, Field.Store.YES, Field.Index.ANALYZED);
			Document d = new Document();
			d.add(ID);
			d.add(NAME);
			d.add(DESC);

			IndexWriter iw = new IndexWriter(FSDirectory.open(INDEX_DIR), new IndexWriterConfig(Version.LUCENE_35,
					new StandardAnalyzer(Version.LUCENE_35)));
			iw.addDocument(d);
			iw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		make("1", "shen yuhan", "god is a girl");
		make("2", "shen chenglong", "this is man");
		make("3", "li supben", "war3 tower rpg man");
		make("4", "hu jintao", "is a dog");
	}
}



package com.supben;

import java.io.File;

import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.FSDirectory;

public class Searcher {

	private static File INDEX_DIR = new File("./index");// 索引文件夹

	public static void getAll() {
		try {
			IndexSearcher searcher = new IndexSearcher(FSDirectory.open(INDEX_DIR));
			TermQuery query = new TermQuery(new Term("name", "shen"));
			TopDocs topdocs = searcher.search(query, 10);
			ScoreDoc[] hits = topdocs.scoreDocs;
			for (ScoreDoc hit : hits) {
				Document doc = searcher.doc(hit.doc);
				String id = doc.get("id");
				String name = doc.get("name");

				System.out.println("查询的文档的id是:" + id + ",名称是:" + name);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		getAll();
	}
}


  • 大小: 8.2 KB
1
2
分享到:
评论

相关推荐

    lucune3.0 及高亮显示 所需的包及代码

    以上就是关于“lucune3.0 及高亮显示 所需的包及代码”这个主题的简要概述,具体实现细节和示例代码需要参考所提供的博客链接或解压后的"search"文件来获取。通过学习和实践这部分内容,开发者可以提升在信息检索和...

    Lucene.net 学习

    主要包含Lucene.net 学习笔记和 Lucene.net 系列的代码,一直一些简单的程序

    lucuneTest.zip

    《基于Lucene和盘古分词器的.NET全文检索实现》 在当今信息化时代,数据量日益庞大,如何快速、准确地从海量信息中搜索到所需内容成为了一个重要的问题。这就引出了全文检索技术,而Lucene作为一个强大的开源全文...

    Lucene笔记

    ### Lucene概述 Lucene是一个高性能、全功能的文本搜索库,它被广泛应用于各种规模的应用程序之中。作为一款开源工具,Lucene提供了强大的搜索功能,使得开发者能够轻松地为自己的应用添加搜索功能。...

Global site tag (gtag.js) - Google Analytics