首页 > 其他分享 >lucene入门实例二(检索)

lucene入门实例二(检索)

时间:2023-04-20 16:05:24浏览次数:34  
标签:检索 search 入门 System lucene import apache org


copy一个lucene in action的例子

 

package com.s.lucene;

import java.io.File;
import java.io.IOException;

import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;

public class IndexReader {

	public static void main(String[] args) throws IOException, ParseException {

		String indexDir = "F:\\workspace\\JavaDemo\\src\\com\\s\\lucene\\index";//存储lucene索引的文件夹
		String queryKey = "最优秀";//查询词
		//查询
		search(indexDir,queryKey);
	}
	
	public static void search(String indexDir,String queryKey) throws IOException, ParseException{
		Directory dir = FSDirectory.open(new File(indexDir));//创建索引文件夹
		IndexSearcher is = new IndexSearcher(dir);//查询
		
		QueryParser parser = new QueryParser(Version.LUCENE_30,
				"contents",
				new StandardAnalyzer(Version.LUCENE_30));
		Query query = parser.parse(queryKey);//封装查询为query
		long start = System.currentTimeMillis();
		TopDocs hits = is.search(query, 10);//查询
		long end = System.currentTimeMillis();
		System.out.println(end-start);
		for (ScoreDoc sd : hits.scoreDocs) {//遍历查询结果
			Document doc = is.doc(sd.doc);
			System.out.println(doc.get("fullpath"));
			System.out.println(doc.get("body"));
		}
		is.close();
	}
}

标签:检索,search,入门,System,lucene,import,apache,org
From: https://blog.51cto.com/u_2465818/6209760

相关文章

  • lucene入门实例一(写索引)
    copy一个luceneinaction的入门实例代码:   importjava.io.File;importjava.io.FileFilter;importjava.io.FileReader;importjava.io.IOException;importorg.apache.lucene.analysis.standard.StandardAnalyzer;importorg.apache.lucene.document.Document;impor......
  • 15-Sass入门
    title:15-Sass入门publish:trueSass简介大家都知道,js中可以自定义变量,css仅仅是一个标记语言,不是编程语言,因此不可以自定义变量、不可以引用等等。面对这些问题,我们现在来引入Sass,简单的说,他是css的升级版,可以自定义变量,可以有if语句,还可以嵌套等等,很神奇吧!那下面......
  • JSP自定义标签开发入门
    评:简单深入赞一般情况下开发jsp自定义标签需要引用以下两个包 importjavax.servlet.jsp.*;importjavax.servlet.jsp.tagext.*; 首先我们需要大致了解开发自定义标签所涉及到的接口与类的层次结构(其中SimpleTag接口与SimpleTagSupport类是JSP2.0中新引入的)。 目标1:自......
  • Spring Aop的学习:Spring Aop的简单入门
    1.什么是AOPAOP(AspectOrientedProgramming):面向切面编程,是OOP(面向对象编程)的一个延续,其和OOP一样,也是一种编程思想。不过AOP是一种横向开发模式。 2.AOP的作用及应用场景作用AOP的主要作用就是减少代码量,提高代码的可重用性,有利于未来的可操作性与可维护性。主要操......
  • 小米AIoT SRE龚同学入职阅博笔记——SRE入门
    为了让团队同学对SRE有个统一的认识,有一些共同的套路和章法,尽量避免在工作中产生价值观和工作思路的矛盾,我一般会让新入职的同学读一下《入职必读》的几篇博客,1是提前对我们有个了解,2是告诉他们我们这的SRE要做什么和怎么做,3是便于入职后快速融入工作、团队,减少矛盾提高协作效率,最......
  • Thingboard入门
    新公司的工作主要是基于thingboard的开发,计划做一个使用,二次开发,源码解读的系列今天入门thingsboard的项目build,一般遇到两个问题ui-ngx的build,其实是有三个要去git网址的东西下载慢,可以进入ui-ngx的目录,yarninstall,或者看package的信息,直接在网上下载现成三个包,放到对应位置......
  • SOCKET(一):基本轮子详解与入门
    1.图解客户端与服务端交互流程上图轮子详解socket简单实践服务端#include<stdio.h>#include<string.h>#include<arpa/inet.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<netinet/ip.h>#include<fcn......
  • odoo 开发入门教程系列-准备一些操作(Action)?
    准备一些操作(Action)?到目前为止,我们主要通过声明字段和视图来构建模块。在任何真实的业务场景中,我们都希望将一些业务逻辑链接到操作按钮。在我们的房地产示例中,我们希望能够:取消或将房产设置为已售出接受或拒绝报价有人可能会说,我们已经可以通过手动更改状态来完成这些事情,但这并......
  • Windows 10开发教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Windows10开发入门教程-从简单的步骤了解Windows10开发,从基本到高级概念,包括简介,UWP,第一个应用程序,商店,XAML控件,数据绑定,XAML性能,自适应设计,自适应UI,自适应代码,文件管理,SQLite数据库,应用程序到应用程序通信,应用程序本地化,应用程序生命周期,后台执行,应用服务,Web平台,连接......
  • Windows 10开发教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Windows10开发入门教程-从简单的步骤了解Windows10开发,从基本到高级概念,包括简介,UWP,第一个应用程序,商店,XAML控件,数据绑定,XAML性能,自适应设计,自适应UI,自适应代码,文件管理,SQLite数据库,应用程序到应用程序通信,应用程序本地化,应用程序生命周期,后台执行,应用服务,Web平台,连......