lucene创建索引

Lucene应用实战(一)——索引创建与搜索 Lucene简介 Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。 Lucene是一个高性能、可伸缩的信息搜索(IR)库。 Information Retrieval (IR) library.它可以为你的应用程序添加索引和搜索能力。 Lucene是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者 是以此为基础建立起完整的全文检索引擎。由Apache软件基金会支持和提供,Lucene提供了一个简单却强 大的应用程序接口,能够做全文索引和搜索。 阅读详情

具体代码如下:


//生成页面生成索引

 public void generStaticPage(String id, HttpServletRequest request) throws IOException {
        Info info = infoDao.findOne(id);
        VelocityEngine engine = templateService.getInstance();
        templateService.generalPage(info);

//webapps下面新建indexpack存放生成的索引文件
        String indexpackUrl = InfoService.class.getResource("/").getPath()
                .replaceFirst("/", "").replaceAll("WEB-INF/classes/", "")
                + "static/indexpack";
        Document doc =null;
        try {
            doc=new Document();
            Field idField = new Field("id", "", Field.Store.YES, Field.Index.NOT_ANALYZED);
            Field titleField = new Field("title", "", Field.Store.YES, Field.Index.NOT_ANALYZED);
            Field contentField = new Field("content", "", Field.Store.YES, Field.Index.ANALYZED);
           
            idField.setValue(info.getId());
            doc.add(idField);
            titleField.setValue(info.getTitle());
            doc.add(titleField);
            contentField.setValue("content");
            doc.add(contentField);

          
            IndexWriter indexWriter = new IndexWriter(
                    new SimpleFSDirectory(new File(indexpackUrl)), new StandardAnalyzer(
                            Version.LUCENE_30), true, IndexWriter.MaxFieldLength.UNLIMITED);
          
            indexWriter.addDocument(doc);
            indexWriter.close();
       
        } catch (Exception e) {
            e.printStackTrace();
        }
    }









//用到的service

package main.java.service;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.util.Properties;


import main.java.beans.Info;


import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.springframework.stereotype.Service;


/**
 * TODO 此处描写类的信息
 * 
 * @time Dec 2, 2016 2:52:55 PM
 * @author cuixx
 * @since JDK1.7
 */
@Service
public class TemplateService{
   private static VelocityEngine engine;

//在classes下面新建一个
   private static String globalPath=TemplateService.class.getResource("/template").getPath();


   private void TemplateService() {engine=new VelocityEngine();}


   public VelocityEngine getInstance() {
       if(engine==null) {
        TemplateService();
       Properties properties=new Properties();
       System.out.println("@@@@@@@@@@path"+globalPath);
       properties.setProperty(engine.FILE_RESOURCE_LOADER_PATH, globalPath);
       engine.init(properties);
       }
       return engine;
   }
   
   public void generalPage(Info info) throws IOException {
       Template template=engine.getTemplate(info.getId()+".vm");
       VelocityContext vcontext=new VelocityContext();
       vcontext.put("title",info.getTitle());
       vcontext.put("content",info.getArticle().getInfo_content());
       StringWriter writer=new StringWriter();
       template.merge(vcontext, writer);

//在webapps下面新建static/htmlpage存生成的静态页
       File file=new File(TemplateService.class.getResource("/").getPath().replaceFirst("/", "").replaceAll("WEB-INF/classes/", "")+"static/htmlpage/"+info.getId()+".htm");
       if(file.exists()) {
           file.delete();
       }
       if(!file.exists()) {
           file.createNewFile();
       }
       OutputStreamWriter outputStream  = new OutputStreamWriter(new FileOutputStream(file, true));
       outputStream.write(writer.toString());
       outputStream.close();
   }
}

Drools vs URule:5个真实项目场景告诉你如何选择开源规则引擎 本文通过电商风控、物流计费、会员体系、保险定价和物联网告警五个真实项目场景,深度对比了Drools与URule两款开源规则引擎。分析了两者在规则复杂度、性能表现、开发运维及适用场景上的核心差异,为技术选型提供基于实战的决策指南。 阅读详情

相关推荐

避开封号风险!wxauto+Claude API实现微信智能客服的合规方案

本文详细介绍了如何利用wxauto和Claude API构建合规的微信智能客服系统,避免封号风险。通过技术选型对比、防封策略设计及大模型接入实践,为企业提供了一套安全高效的解决方案,特别适合中小企业在微信生态中部署AI客服。

sql99的博客 448

Lucene索引创建过程

一,Lucene建索引API二,创建IndexWriter三,创建Document四,添加Document 1  Lucene使用场景2  重要的几个基础类 2.1  DocumentsWriterPerThreadPool2.2 ThreadState2.3  DocumentsWriterPerThread 2.4  DocumentsWriterFlush

chenqiang_99的专栏 980

InSAR数据获取实战指南:Sentinel-1、精密轨道与ALOS PALSAR DEM的下载与应用

本文详细介绍了InSAR数据获取的实战指南,重点解析Sentinel-1数据、精密轨道数据(OPOD)和ALOS PALSAR DEM的下载与应用技巧。通过实际案例和代码示例,帮助读者掌握数据筛选、下载加速、校验及多源数据协同使用的关键方法,提升地面形变监测的精度与效率。

weixin_29215815的博客 433

lucene学习-创建索引

本文的lucene是基于lucene3.5版本. 使用lucene实现搜索引擎开发,核心的部分是建立索引和搜索。本节主要是记录创建索引部分的内容。 创建的索引结构如图所示。 创建索引的步骤分为以下几个步骤: 1、建立索引器IndexWriter 2...

chuweiyun6378的博客 151

宜搭,高级认证实操2,FaaS连接器指导教程

找到FaasEntry.java将如下代码整体替换,注意引包。如图所示在util下新建EDSUtil.java代码如下。回到连接器界面点击右上角测试-->测试。连接器工厂-->新建FaaS连接器。保存-->前往云IDE开发。返回如图所示代码,部署成功。

2301_80286061的博客 3343

Kubernetes+EdgeX:构建企业级AI边缘推理平台

设备:工业摄像头(RTSP协议,输出1920x1080视频流);AI模型:YOLOv8训练的轴承裂纹检测模型(识别“裂纹”“正常”两种类型);目标:摄像头采集图像→EdgeX传输数据→K8s推理服务检测→结果反馈到报警器(HTTP协议)。Kubernetes+EdgeX的组合,为企业构建AI边缘推理平台提供了标准化、可扩展标准化:K8s的容器编排和EdgeX的设备管理,都是行业标准,避免“重复造轮子”;可扩展:支持从单边缘节点到 thousands of nodes 的规模,满足企业的增长需求;

AI算力网络与通信的博客 1344

Lucene简单实现创建索引以及查询

package com.rdz.test; import java.io.File; import java.io.FileReader; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnaly

韶shls的博客 1988

RK3568下YT8531/YT8521 PHY移植避坑指南:RGMII与设备树详解

嵌入式Linux网络调试中,PHY芯片作为MAC与物理介质之间的桥梁,其驱动配置直接影响网络稳定性。RGMII接口的延时补偿、PHY地址设定以及复位时序是设备树配置中的关键环节,稍有差错便会出现链路已通却无法通信的现象。通过理解PHYLIB框架与mdio总线枚举原理,开发者可以快速定位寄存器级故障。在RK3568等工业级平台中,裕太微YT8531/YT8521凭借高性价比与内核主线支持,成为替代传统方案的热门选择。从设备树模板、内核配置到常见坑点,系统梳理千兆以太网PHY的移植与调试方法,帮助开发者少走弯路

weixin_29189381的博客 212

lucene创建索引_Lucene概述第一部分:创建索引

lucene创建索引 介绍 我最近一直在与开源搜索引擎Lucene合作 。 我不是专家,但是由于我只是浏览了一些相当稀疏的文档并将应用程序从Lucene的很旧的版本迁移到了最新版本的2.4,所以我在总体上很清楚。 Lucene的文档有点让人想像不到,因此我想趁此机会在我脑海中崭露头角时,对Lucene进行高层次的概述。 如果您发现此页面正在寻找Lucene的入门资料,那么对您有好处! 这...

最佳 Java 编程 666

基于JavaFX的Http Server模拟器

源码地址 GitHub - DayRain/http-server-simulator: http server 模拟器 功能描述 HttpServer模拟器,通过简单的配置即可模拟第三方服务端,用于接收和响应HTTP请求。 支持同时模拟多个服务、动态添加接口、动态配置返回值。 使用说明 运行 exe运行 编译代码后,点击exe直接运行 代码运行 下载好代码后,运行主类ApplicationStarter即可 新建服务 主界面如下 点击 文件-新建 创建新的服务 ...

小楼夜听雨的博客 2534

05-SA8155 QNX Display框架及代码分析(1)

显示是非常重要的一个模块,人机交互的桥梁。那么SA8155 Hypervisor显示是如何处理的呢。对处理流程非常的好奇O(∩_∩)O哈哈~。TODO。

静虚待令,有物混成 1万+

Lucene创建索引库

1、导包 2、实现步骤 第一步:创建一个java工程,并导入jar包。 第二步:创建一个indexwriter对象。 1)指定索引库的存放位置Directory对象 2)指定一个分析器,对文档内容进行分析。 第二步:创建document对象。 第三步:创建field对象,将field添加到document对象中。 第四步:使用indexwriter对象将document对...

玉爷的博客 367

Vue3 - 详细实现微信公众号H5网页内置浏览器中预览下载word文档(doc)、excel表格(xls)、ppt文稿、pdf文档等文件,微信内部直接打开预览和下载到本地教程,安卓苹果手机无差异兼容

vue3,nuxt3,微信公众号,h5,移动端,网页,网站,vue微信内置浏览器下载文件,下载文件,在微信浏览器里面实现下载任意文件,H5需要在微信浏览器中下载excel文件,实现网页在微信内置浏览器中下载文件详细教程,安卓点击下载会提示打开浏览器,后端返回流文件,如何解决无法下载文件,跳转至浏览器下载文件,发送到电脑微信,安卓,苹果,手机系统,微信H5页面,vue3微信公众号H5网站,内置浏览器下载文档,如何在微信浏览器中预览office文件,word文档,excel文档,pdf文档,ppt文档,offi

🏆 前端领域优质创作者 1万+

基于lucene的案例开发:创建索引

通过简单的事例,介绍了如何创建Lucene索引,同时还介绍了在索引创建过程中的几个核心类:IndexWriter、Directory、Analyzer、Document、Field。

小鸡慢慢的专栏 5592

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Lucene的基本使用之创建索引的流程

1.1.1、创建索引的流程: 1.1.2、代码实现 @Test public void indexCreate() throws IOException { // 创建文档对象 Document document = new Document(); // 添加字段,参数Field是一个接口,要new实现类的对象(StringField, TextField) //...

qq_40208605的博客 630

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Lucene创建索引和查询索引的使用

创建索引 创建索引的步骤: 第一步:创建一个 java 工程,并导入 jar 包。 第二步:创建一个 indexwriter 对象。 1)指定索引库的存放位置 Directory 对象 2)指定一个 IndexWriterConfig 对象。 第二步:创建 document 对象。 第三步:创建 field 对象,将 field 添加到 document 对象中。 1)获取 原始文文档 io 2...

weixin_41040866的博客 408

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Lucene入门之创建索引

             创建索引 创建索引的基本方式   创建索引的过程1,  建立索引器IndexWriter2,  建立文档对象Document3,  建立信息字段对象Field4,  将Field添加到Document里面5,  将Document添加到IndexWriter6,  关闭IndexWriter   创建Field     Field

snowteng17的专栏 1071

Lucene 4.7 教程起步--创建索引

..从产品设计css一直做到linux运维的程序猿...  很多技术都是皮毛,各位见谅,只求和大家交流一点小技术,欢迎拍砖!.. Lucene作为全文所以的不二工具,最新已经到4.7.0,在大学时候玩过一段时间,那时候版本很早,现在4.7.0和原来的语法差距很大了,也没有专门针对最新版本的书籍,包括国外的博客文章都很少,我神州大地就难觅踪影了(如果哪位找到了欢迎拍砖,我想看中文教学.

山水间的漫步者 2万+

Lucene之索引创建入门级实例

一、需要创建索引的源文件 二、创建索引后的目标文件  三、可以使用Luke查看生成的目标文件 四、 Field域的属性概述  1.是否分析 是否对域的内容进行分词处理,前提是我们要对域的内容进行查询 2.是否索引 将Field分析后的词或整个Field值进行索引,只有索引方可搜索到 比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要...

绣花针 258

Lucene创建索引流程

原始文档:互联网上的网页(爬虫或蜘蛛)、数据库中的数据、磁盘上的文件 创建文档对象(非结构化数据) 文档对象中的属性不叫属性现在成为域。 每个 Document 可以有多个 Field ,不同的 Document 可以有不同的 Field,同一个 Document 可以有相同的 Field(域名和域值都相同)。 每个文档都有一个唯一的编号,就是文档id 分析文档     将原始内容...

mosterRan的博客 4433

lucene7 创建索引

//创建索引 public static <T> ResultVO<T> addTest (String path) {         IndexWriter writer=null;         try {             Directory dir =FSDirectory.open(Paths.get(path));             //指定一...

qq_26809375的博客 642

Lucene创建索引库代码实现

创建索引库 使用indexwriter对象创建索引 实现步骤 第一步:创建一个java工程,并导入jar包。 第二步:创建一个indexwriter对象。 1)指定索引库的存放位置Directory对象 2)指定一个分析器,对文档内容进行分析。 第二步:创建document对象。 第三步:创建field对象,将field添加到document对象中。 第四步:使用indexwrite...

学亮编程手记 530

如何创建Lucene索引

需要用到的IPA: IndexWriter:这个是索引创建的中心组件,通过他就可以创建索引,它是生成索引的过程(与读取和搜索索引没有关系)。初始化化它时,需要传递的两个参数。第一个是参数是指定索引创建的位置,第二是参数是配置分词器。 Document:这个文本相当于数据库中的一条记录,它里面需要添加Field,Document里面有多个Filed,根据你需求而定。 Field:我把它理解为索引

android_gjw的博客 862

Lucene之创建索引

Lucene基本概念: 1、  Index:索引库,文档的集合组成索引。和一般的数据库不一样,Lucene不支持定义主键,在Lucene中不存在一个叫做Index的类,通过IndexWriter来写索引,通过IndexReader来读索引。索引库在物理形式上一般是位于一个路径下的一系列文件。   2、  分析器:一段有意义的文字需要通过Analyzer分析器分割成一个个词语后才能按关键字搜索

虚心求学_一点一滴 1293

Lucene教程(一) 创建索引

简述: 由于Lucene不同的版本差距较大,,此系列教程打算把3.5版本,4.5版本,5.0版本都给出个例子,方便大家学习,也方便自己复习。注:由于Lucene5.0版本是基于JDK1.7开发的,所以想学习的同学请配置1.7及以上的版本。故测试Lucene 6.1.0也适用Lucene 5.0中的代码。Lucene 6.1.0最低要求也是JDK1.7.创建索引可分为主要的几步,我自己试验过,不同的

ayi_5788的专栏 1133
上一篇: lucene多种查询方式
下一篇: lucene 基于索引的查询
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值