lucene入门

Lucene(3): Lucene入门 Luke作为Lucene工具包中的一个工具(http://www.getopt.org/luke/),可以通过界面来进行索引文件的查询、修改。将luke-swing-8.0.0里面的内容, 放到一个硬盘根目录的文件夹下, 不能有空格和中文名称。在电商网站中,全文检索的数据源在数据库中,需要通过jdbc访问数据库中tb_sku 表的内容。最基本的有比如:AND, OR, NOT 等(必须大写)使用这三个文件的jar包,就可以实现lucene功能。它对应的查询语句:name:手 OR name:机。 阅读详情

(1)创建索引

package com.lucene.index;

import java.io.File;
import java.io.IOException;
import java.util.List;

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.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.Version;

import com.lucene.vo.ProductList;

public class CreateIndex {

    public void createIndex(List<ProductList> pList,String path){
        Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_31);
        IndexWriterConfig indexWriteConfig = new IndexWriterConfig(Version.LUCENE_31, analyzer);
        IndexWriter indexWriter = null ;
        try {
            Directory  directory = new SimpleFSDirectory(new File(path));
             indexWriter = new IndexWriter(directory, indexWriteConfig);
            for (ProductList productList : pList) {
                Document document = new Document();
                Field id = new Field("id",productList.getId().toString(),Store.YES,Index.ANALYZED);
                Field productName = new Field("productName", productList.getProductName(), Store.YES, Index.ANALYZED);
                Field productPrice = new Field("productPrice", productList.getProductPrice().toString(), Store.YES, Index.NOT_ANALYZED);
                Field catalogName = new Field("catalogName", productList.getCatalogName(),  Store.YES, Index.ANALYZED);
                document.add(id);
                document.add(productName);
                document.add(productPrice);
                document.add(catalogName);
                indexWriter.addDocument(document);
            }
            indexWriter.commit();
        } catch (CorruptIndexException e) {
            e.printStackTrace();
        } catch (LockObtainFailedException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                indexWriter.close();
            } catch (CorruptIndexException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

(2)读索引

package com.lucene.index;

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.Store;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.queryParser.MultiFieldQueryParser;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;

public class SearchIndex {
    public void search(String indexPath,String[] field,String quaryString){
        FSDirectory directory = null ;
        try {
            directory = FSDirectory.open(new File(indexPath));
            IndexReader reader = IndexReader.open(directory);
            IndexSearcher search = new IndexSearcher(reader);
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_31);
            MultiFieldQueryParser queryParse = new MultiFieldQueryParser(Version.LUCENE_31, field, analyzer);
            Query query = queryParse.parse(quaryString);
            ScoreDoc[] scoreDocs = search.search(query, 1000).scoreDocs;
            System.out.println("找到的记录条数:"+scoreDocs.length);
            for (ScoreDoc scoreDoc : scoreDocs) {
                Document document = search.doc(scoreDoc.doc);
                System.out.println(document.get("id")+":"+document.get("productName")+":"+document.get("productPrice")+":"+document.get("catalogName"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        
    }

}




保姆级教程:用Ansys Workbench找出BGA焊点最容易坏的位置(附热循环+振动分析) 本文提供了一份详细的Ansys Workbench教程,指导如何通过热循环和振动分析找出BGA焊点最容易失效的位置。从模型搭建、材料定义到网格划分和载荷设置,全面解析了BGA焊点可靠性分析的全流程,帮助工程师提前预防焊点开裂问题,提升电子封装设计的可靠性。 阅读详情

相关推荐

Ubuntu 22.04 搭建 PX4 飞控系统完全指南:从仿真到硬件试飞

定义消息文件protobufuint64 timestamp # 时间戳float32 temperature # 温度float32 humidity # 湿度生成代码:bashPX4 在 Ubuntu 22.04 的搭建涉及环境配置、编译仿真、硬件连接等多环节,核心是理解 PX4 1.14 的新特性(uXRCE-DDS、动态控制分配)。通过本文指南,开发者可快速构建稳定的 PX4 开发环境,为无人机应用开发奠定基础。

zqmgx13291的博客 3039

Lucene创建索引入门案例

原:http://blog.youkuaiyun.com/zwx19921215/article/details/32936395 最近在学习lucene,参考网上的资料写了一个简单搜索demo; 项目jar包: //索引关键类 [java] view plain copy   1.  "code" class="java">package com.lucene.index;   2

南国樱花祭 1266

logisim计组实验八 乘法器

原理:点这里 有问题欢迎留言哦~ 文章目录五位阵列乘法器电路图时间延迟分析六位补码阵列乘法器五位无符号乘法流水线原理图电路图原码一位乘法器原理图电路图补码一位乘法器 五位阵列乘法器 电路图 此处注意:全加器FA的cout端是进位端而非输出端 使用硬件控制比循环累加的速度快得多。 但是存在串行进位链 改进版: 时间延迟分析 T是计算相加数的一级门延迟 3n–>2n 性能差别在1.5倍 ...

treblez's blog 2万+

领域模型中的实体类分为四种类型:VO、DTO、DO、PO

领域模型中的实体类分为四种类型:VO、DTO、DO、PO

arthur.dy.lee的专栏 3万+

4D 毫米波雷达:智驾普及的新路径(一)

总体而言,4D 毫米波雷达具有更佳的探测能力,更高的分辨率和精度,在人工智能技术的加持下,能够实现更加智能化的感知和跟踪,从而为自动驾驶、智能交通等领域提供更加可靠的数据支持。博世的第五代引入了俯仰维度,但其角度分辨率较差,且最大探测距离为。车载毫米波雷达的尺寸受限,我们认为通过算法的优化、天线内置等方式可以在保障性能的前提下,压缩尺寸,便于车企进行灵活的设计安装。在物理设计、天线性能设计、电连接、封装工艺和材料、散热处理、可靠性与自动化测试等方面进行持续优化,推出可大规模量产的高性能毫米波雷达解决方案。

奔袭的算法工程师 3954

量化金融笔记1-股票量化基础

股票量化基础 文章目录什么是股票股票的定义及其诞生所解决的问题股票的主体和流通股票的常规分类股票价格收益率什么是股票价格的收益率股票价格收益率计算在python中的实现两种收益率算法的特点及应用场合股票交易规则场内交易与场外交易A股、B股、H股国内多层次的资本市场股票交易指令和撮合机制股票交易时间股票交易成本股票复权股票数据介绍与提取行业分类和指数行情数据因子数据标的数据基本面数据 什么是股票 股票的定义及其诞生所解决的问题 股票的定义:股票是一种有价证券,是股份有限公司公开发行的用以证明投资者的股东身份

折桂狂人的博客 2395

Lucene入门

全文检索是将整本书、整篇文章中的任意内容信息查找出来的检索。它可以根据需要获得全文中有关章、节、段、句、词等信息,计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。

weixin_44270855的博客 806

Simulink仿真模块 -Scope

如果您将 Scope 模块放在具有锁定链接的库或者锁定的库中,当尝试打开示波器窗口时,Simulink 会显示错误。要显示某个库模块中的内部数据,请为库模块添加一个输出端口,然后将此端口连接到您模型中的 Scope 模块。当您在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。当在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。如果在仿真开始时波形视图关闭,则当在仿真后打开波形视图时,波形视图将显示附加的输入信号的仿真结果。

jk_101的博客 3790

Lucene从入门到使用

第一节:lucene入门阶段 1.什么是Lucene?         Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。——《百度百科》 2.全文...

Null的博客 1万+

YOLOv8源码解析与复现:ShuffleAttention:高效的混合注意力机制 实现通道和空间混合注意力

随着深度学习在计算机视觉领域的飞速发展,卷积神经网络(CNNs)已经成为图像分类、目标检测、语义分割等任务的核心。为了进一步提升模型的性能,研究者们引入了“注意力机制”,旨在让网络能够动态地关注输入数据中最具信息量的部分。经典的注意力模块,如SE-Net(Squeeze-and-Excitation Networks)和CBAM(Convolutional Block Attention Module),通过通道注意力或结合通道与空间注意力,显著增强了模型的特征表达能力。

FJN110的博客 554

HFSS实战项目——Ku波段微带发夹线滤波器

保姆级教程!!!看完必会,非常详细!!!Ku频段5阶切比雪夫微带线带通滤波器的仿真实例。首先介绍了滤波器的技术指标和基本理论知识,重点介绍了滤波器的耦合系数和外部品质因数。建立了谐振器的设计模型、耦合系数与谐振器间距的设计模型、外部品质因数与抽头位置的设计模型和滤波器整体电路的模型。详细介绍了谐振器设计模型的建立步骤。

2401_87464239的博客 3041

Lucene的入门案例

   最近在网上找视频学习了Lucene的相关知识,根据视频内容以及其他资料简单总结下Lucene的相关知识点。    Lucene是apache软件基金会的一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在...

Java学习 323

基于相场法模拟金属铜的晶粒的长大过程附matlab完整代码

晶粒生长是一种重要的材料形态演化过程,对于材料的性能和制备有着非常重要的影响。相场法是一种将材料结构和热力学性质联系起来的方法,它能够有效地模拟晶粒的长大过程并预测材料的结构和性能。本文所采用的相场模型是基于Cahn-Hilliard方程和Allen-Cahn方程的二次相场模型。其中,Cahn-Hilliard方程描述了晶界的自由能密度,而Allen-Cahn方程则描述了晶粒的彼此之间的界面能密度。本篇文章将介绍如何使用相场法模拟金属铜的晶粒的长大过程,并提供完整的MATLAB代码供读者参考。

m0_47037246的博客 1382

lucene入门02

582

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

lucene入门1

lucene入门 1.创建索引 2.查询索引

zzzjavazzz的博客 182

老版QQ原生表情gif动态

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

lucene全文检索入门

欢迎使用lucene 非结构化数据顺序扫描很慢,对结构化数据的搜索却相对较快(由于结构化数据有一定的结构可以采取一定的搜索算法加快速度),那么把我们的非结构化数据想办法弄得有一定结构不就行了吗?关系数据库中存储的都是结构化数据,因此很检索都比较快。 从非结构化数据中提取出数据的然后重新组织成结构化数据的信息,我们称之索引。即为文本数据建立类似字典目录,从而提高检索速度。 全文检索的特点: (1...

weixin_44675503的博客 697

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java lucene 例子_Lucene第一个入门学习例子

看Lucene in Action的时候,练习的一个入门例子。在使用Lucene进行文本内容搜索前,需要先对指定的目录下的文件进行建立索引,代码如下:importjava.io.File;importjava.io.FileFilter;importjava.io.FileReader;importjava.io.IOException;importorg.apache.lucene.a...

weixin_33871933的博客 249

lucene4.4入门实践

最近需要用到lucene,使用最新版本4.6的版本,发现比较以前学习的3.0版本有很多的改变,包括各种参数配置,而网上搜索到的大部分都是3.0版本的教程,于是只好自己动手,好在有基础,不难...      首先创建索引,其实我很久不用lucene了,以前学习的差不多都忘记了,不过我还记得创建索引对象IndexWriter,使用这个对象,根据eclipse的代码提示,差不多就可以完成了

乄浅醉的专栏 966

Lucene(入门一)

请点击我lunece的简单入门教程:http://blog.youkuaiyun.com/zxiang248/article/details/52190679

墨怀旧 288

Lucene 快速入门

Lucene使得全文索引这项技术活变得非常简单,我将用5分钟做个快速展示。 1.建立索引  这个例子展示的是在内存中为几个String建立索引 StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_44); Directory index = new RAMDirectory(); IndexWriterConfi

离名 1170
上一篇: spring mvc 集成velocity模板
下一篇: 开源报表birt
sust2012
博客等级 码龄15年 46粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sust2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值