Lucene(1)

影像组学分析流程中,图像分割前要做的事(图像预处理) 在InputVolume中无法找到自己想要重采样的序列,这时可以检查一下序列的Volume type是不是MRMLMulti。这时,Volume type将由MRMLMulti改为Scaler,随后即可在3D slicer中完成Resample Scaler Volume。2.1、重采样:通过3Dslicer中的Resample Scaler Volume实现。具体设置参数:spacing(1,1,1),Interpolation选择Bspline。2、图像预处理:重采样和标准化。 阅读详情

简介

概述

Lucene总的来说是:一个高效的,可扩展的,全文检索库。全部用Java实现,无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。

全文检索

我们生活中的数据总体分为两种:结构化数据 和非结构化数据 。

结构化数据: 指具有固定格式或有限长度的数据,如数据库,元数据等。
非结构化数据: 指不定长或无固定格式的数据,如邮件,word文档等。
当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,当根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来处理。

非结构化数据又一种叫法叫全文数据。
这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search) 。

Lucene流程

这里写图片描述

说明Lucene 是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。

让我们更细一些看Lucene的各组件:

这里写图片描述

  1. 被索引的文档用Document对象表示。
  2. IndexWriter 通过函数addDocument 将文档添加到索引中,实现创建索引的过程。
  3. Lucene 的索引是应用反向索引。
  4. 当用户有请求时,Query 代表用户的查询语句。
  5. IndexSearcher 通过函数search 搜索Lucene Index 。
  6. IndexSearcher 计算term weight 和score 并且将结果返回给用户。
    返回给用户的文档集合用TopDocsCollector 表示。

实现

package test2;

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.StringField;  
import org.apache.lucene.document.TextField;  
import org.apache.lucene.index.DirectoryReader;  
import org.apache.lucene.index.IndexReader;  
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.search.TopScoreDocCollector;  
import org.apache.lucene.store.Directory;  
import org.apache.lucene.store.RAMDirectory;  
import org.apache.lucene.util.Version;  

import java.io.IOException;  

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

       Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_47);  

        //将索引存储到内存中  
        Directory directory = new RAMDirectory();  
        //如下想把索引存储到硬盘上,使用下面的代码代替  
        //Directory directory = FSDirectory.open(Paths.get("/tmp/testindex"));  

        //写入索引库  
        IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_47,analyzer);  
        IndexWriter iwriter = new IndexWriter(directory, config);  

        String[] texts = new String[]{  
            "Mybatis分页插件 - 示例",  
            "Mybatis 贴吧问答 第一期",  
            "Mybatis 示例之 复杂(complex)属性(property)",  
            "Mybatis极其(最)简(好)单(用)的一个分页插件",  
            "Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题",  
            "Mybatis 示例之 foreach (下)",  
            "Mybatis 示例之 foreach (上)",  
            "Mybatis 示例之 SelectKey",  
            "Mybatis 示例之 Association (2)",  
            "Mybatis 示例之 Association"  
        };  

        for (String text : texts) {  
            Document doc = new Document();  
           // doc.add(new Field("fieldname", text, TextField.TYPE_STORED));  
            doc.add(new TextField("title", text, Field.Store.YES));    
            doc.add(new StringField("isbn", ""+String.valueOf(Math.random()), Field.Store.YES));  

            iwriter.addDocument(doc);  
        }  
        iwriter.close();  

        //读取索引并查询  
        DirectoryReader reader = DirectoryReader.open(directory);  
        IndexSearcher isearcher = new IndexSearcher(reader);  
        //解析一个简单的查询  
        QueryParser parser = new QueryParser(Version.LUCENE_47,"title", analyzer);  
        Query query = parser.parse("foreach");  
        ScoreDoc[] hits = isearcher.search(query, 1000).scoreDocs;  
        //迭代输出结果  
        for (int i = 0; i < hits.length; i++) {  
            Document hitDoc = isearcher.doc(hits[i].doc);  
            System.out.println(hitDoc.get("title"));  
            System.out.println(hitDoc.get("isbn"));  
        }  
        reader.close();  
        directory.close();  

  }  
}  
Mybatis 示例之 foreach (下)
0.936427711899241
Mybatis 示例之 foreach (上)
0.025906583963816954
AI测试干货:让大语言模型稳定输出 JSON 的四种实现方案 用大语言模型做测试用例生成、数据提取时,最头疼的就是让它老老实实返回 JSON。你以为它会给你 `{"name":"张三"}`,结果它来一句"好的,这是生成结果:```json...",或者干脆在 JSON 里加注释,直接把你的 `json.loads()` 干崩溃。 模型本质上是个话痨,天生爱解释。但我们要的是结构化数据,不是聊天记录。我整理了四种实战方案,从最简单的提示词技巧到工程化框架,覆盖了从快速验证到生产环境的各种场景。 阅读详情

相关推荐

CNN卷积神经网络手写数字识别实例及代码详解

本文的代码来自githup的Deep Learning的toolbox,是用Matlab实现的。感谢该toolbox的作者付出和分享。 我在应该该代码进行训练时,出现一些报错,如expand函数应用不对,flipall函数未定义等问题,对这些问题进行了修正,完成网络训练和验证。 本文mnist_uint8.mat的获取可以参照我的另一篇博客:MNIST数据库处理--matlab生成mnist_

VivienFu的专栏 6万+

关于org.apache.lucene.queryParser.ParseException: Encountered "<EOF>" 解决方法

现象: org.apache.lucene.queryParser.ParseException: Encountered "&lt;EOF&gt;" at line 1, column 0. Was expecting one of: &lt;NOT&gt; ... "+" ... "-" ... "(" ... &lt;QUOTED&

ryelqy的博客 4512

YOLOv8-seg模型后处理实战:从输出解析到mask生成的完整流程

本文详细解析了YOLOv8-seg实例分割模型的后处理完整流程,从理解output0与output1的双输出结构,到实现检测框的置信度过滤、坐标转换与NMS,再到核心的掩膜生成数学原理与矩阵乘法实现。文章深入探讨了如何将掩膜系数与原型掩膜库结合,生成像素级分割结果,并提供了掩膜上采样、边缘优化、性能提升及解决实际应用难题的实战方案。

xgboost6farmer的博客 316

Lucene的QueryParser搜索时出现ParseException

如果出现了下列错误,那是因为用错了函数。把queryParser.Query改称queryParser.parse就通过了org.apache.lucene.queryParser.ParseException: Encountered "" at line 1, column 0.Was expecting one of:    ...    "+" ...    "-" ...    "

张名举的专栏 3508

实战指南:在华为防火墙上构建基于自签CA的SSL证书挑战式认证体系

本文详细介绍了在华为防火墙上构建基于自签CA的SSL证书挑战式认证体系的实战指南。通过自签CA证书生成、华为防火墙SSL VPN配置、客户端安装与测试等步骤,帮助企业实现更安全的远程办公接入方案,有效防范密码泄露风险。文章重点讲解了证书挑战登录的实现原理和配置细节,适用于企业网络安全建设。

weixin_32428571的博客 256

动态知识图谱构建:从本体论到工程实践

知识图谱作为语义网和人工智能领域的核心技术,旨在通过结构化的方式表示和组织知识。其核心原理在于将实体、概念及其关系建模为图结构,从而支持复杂的语义推理和关联查询。这一技术为机器理解数据间的深层联系提供了基础,在智能推荐、企业知识管理和学术研究等领域具有重要价值。通过结合自然语言处理(NLP)和图数据库技术,系统能够从非结构化数据中自动抽取知识,并构建动态演化的认知网络。本文以“本体论章鱼”项目为例,探讨了如何实现从静态本体到动态知识网络的范式转变,并详细解析了其分布式感知、适应性学习的架构设计,为构建灵活可

weixin_30731305的博客 656

lucene解析乱码的异常

org.apache.lucene.queryParser.ParseException: Cannot parse ' ': Encountered "&lt;EOF&gt;" at line 1, column 2. Was expecting one of: &lt;NOT&gt; ... "+" ... "-" ... "(" ... "

mujizi的专栏 867

GD32F307 USB主机模式 外接U盘升级 调试问题记录

在移植USB驱动做主机读U盘时遇到的问题。 问题1、移植USB驱动完成后,插入U盘,一直在 usbh_core_task 的默认case 和测试case中反复执行无法执行到后面的连接及以后得步骤。 问题2、在 usbh_core_task 函数中,一直卡在枚举的case,无法执行下面操作。具体卡在urb_wait的while循环无法跳出。

LGC_764385701的博客 1949

lucene中Field简析

先看一段lucene3代码 Document doc = new Document(); doc.add(new Field("fullpath", f.getCanonicalPath(), Field.Store.YES, Field.Index.NOT_ANALYZED)) Field类是文档索引期间很重要的类,控制着被索引的域值

zhaoxiao的专栏 1万+

超详细YOLOv8目标检测全程概述:环境、训练、验证与预测详解

这篇博文提供了一个关于使用YOLOv8进行目标检测的全面指南,包括环境搭建、模型训练、验证和预测的详细步骤,以及如何解释训练过程中生成的各种图表和数据。整篇文章为读者提供了一个关于如何利用YOLOv8进行目标检测的实践指南,从环境搭建到模型部署,再到结果分析,每一部分都给出了详细的步骤和解释。此外,还有对于模型输出的解释,帮助读者更好地理解和使用YOLOv8模型。

CDBmax的博客 10万+

基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置

ProxmoxVE是一款套开源的虚拟化管理软件,用户可通过网页的方式来管理服务器上使用kvm以及lxc技术运行的虚拟机。同时提供了一些先进功能的支持,如集群、HA等。PVE虽然是开源,却是由一个商业公司在运营、更新以及维护。...

隔壁老瓦的专栏 6320

解析xml时,报错:WARN/System.err(207): org.apache.harmony.xml.ExpatParser$ParseException: At line 1,

最近两天看mars老师的mp3播放器,一步一步跟着老师敲的代码,结果运行起来,解析xml时总是报错 private List parseXML(String xmlStr){ SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); List infos = new ArrayList(); try{

weiweimaom的专栏 970

STM32入门教程:水位传感器应用

这是一个简单的STM32水位检测系统的入门教程。希望通过学习本教程,您能对STM32微控制器的基本应用有更深入的了解,并能成功构建一个水位检测系统。如果您需要更详细的代码实例和教程,请参考相关的STM32开发手册和应用笔记。STM32是一款功能丰富且广泛应用于嵌入式系统的微控制器系列。在本教程中,我们将介绍如何使用STM32微控制器和水位传感器构建一个水位检测系统。

wx_linying1029的博客 533

【lucene初学】lucene4.2.1

背景:下阶段工作需要实现全文检索功能,查阅信息决定以lucene实现 使用版本:lucene-4.2.1 下载地址:http://mirrors.cnnic.cn/apache/lucene/java/4.2.1/ API地址:http://lucene.apache.org/core/4_2_1/index.html 网上搜索找到以下学习地址: http://www.ibm.c

雪 * 馨 1900

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

lucene java 1.6_基于开源Lucene的java开发环境配置

前段时间做关于文本分类方面的研究,下载了开源的LUCENE代码,进行了一些初步的研究。要想利用开源代码做一些程序,环境的配置要点有点多,但都不麻烦,现在总结一下,有一下几点。基于jdk1.6的环境在eclipse集成开发环境,完成环境的配置。1. jdk环境:下载安装JDK1.6,环境变量配置如下:用户变量中添加如下变量和属性值:Classpath ------c:\Program Files\J...

weixin_30682043的博客 229

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Lucene7.1案例

Lucene7.1案例 使用Lucene7.1、jdk1.8 1、创建maven项目、导入依赖 <dependencies> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId&gt...

weixin_33916256的博客 220

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

lucene的基本查询及lucene3.0.1API

lucene 3.0.1 apihttp://lucene.apache.org/core/old_versioned_docs/versions/3_0_1/api/core/overview-summary.htmlpackage com.tianditu.searchDemo; import java.io.File; import org.apache.lucene.ana...

weixin_34087503的博客 136

Lucene 6.1.0 入门Demo

根据Lucene 6.1.0 及JDK 1.8最新版本,结合前几篇文章所写的最新Demo. 代码如下:package Demo; import java.io.File; import java.io.FileReader; import java.nio.file.FileSystems;import org.apache.lucene.analysis.Analyzer; import org

ayi_5788的专栏 1万+

Lucene 6.1 Demo

转载出处:http://blog.csdn.net/ayi_5788/article/details/52126481 根据Lucene 6.1.0 及JDK 1.8最新版本,结合前几篇文章所写的最新Demo.  代码如下: package HighLightSearch; import java.io.File; import java.io.FileReader; import

wea111222333的博客 339

lucene4.1.0 demo 配置

from:   http://blog.163.com/ws_wishao/blog/static/1730469632013212101316176/ 在写这篇文章时,lucene的最新版本是4.1.0,文件可以从Apache站点(http://lucene.apache.org/)下载lucene-4.1.0.zip, 解压后有个demo文件夹就是lucene的

wxhvc的专栏 1053

lucene_7.1_demo

lucene 7.1 demo

liu975123的专栏 3818

Lucene 6.1.0 入门一

根据Lucene 6.1.0 及JDK 1.8最新版本,结合前几篇文章所写的最新Demo.  代码如下: package HighLightSearch; import java.io.File; import java.io.FileReader; import java.nio.file.FileSystems; import org.apache.lucene.analysis.An

mojolang 916

Lucene 1.9 改进特性列表

26. 为BooleanQuery增加了最小的匹配短语。见:BooleanQuery.setMinimumNumberShouldMatch(). (Paul Elschot, Chris Hostetter via Yonik Seeley, LUCENE-395) 27. 增加了 DisjunctionMaxQuery 类,提供了针对某个短语的最大score。这一点对多字段的搜索...

网站开发初中级代码参考-转载 88

Lucene1.4终于成功了

同学: Lucene1.4终于成功了,要用这个StandardAnalyzer分析器,不用外加中文分析器,它已经集成了。 我:   呵呵,恭喜啊。  我:   你弄了什么外加中文分析器 同学: CJK之类的一大堆,都是车东写的,Lucene1.4已经集成了车东的包。 我:   速度怎么样? 同学: 你把那个Demo的results.jsp的Analyzer analyzer = new StopA

Norez的专栏 891

Lucene 2.4.1 API

Lucene 2.4.1 API [url]http://www.pusuo.net/[/url]

雷斧 252

Lucene3.1对QueryParser做了调整

Lucene3.1对QueryParser做了调整,搜索语法树发生了变化。示例效果如下: 示例代码: public static final String word = "国务院办公厅关于印发2011年食品安全重点工作安排的通知"; /** * 建索引 * * @throws CorruptIndexException

exitzhang的专栏 866
上一篇: this和super
下一篇: 悲观锁与乐观锁
王小禾
博客等级 码龄11年 80粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值