- 浏览: 7358326 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在最近,看了一下SpringLuence的源代码,学习关于搜索引擎的设计思路:
首先关于搜索引擎的两个主要操作为:
1.建立索引文档
2.搜索查找信息
创建索引文档,必须针对不同的文档,获取各种文档的内容,建立文档的信息。
关于建立索引文档的方法请看Luence的基础。
这里主要说一下关于Luence设计的思路。
无论任何文档都可以转换为输入流对象,然后获取文件的内容。
关于文档处理器的接口设计如下:
DocumentHandler
源代码如下:
public interface DocumentHandler {
/**
* Return whether or not this object can create a document from an
* instance of the given class. 检测一个对象是否可以创建一个索引文档对象
*/
boolean supports(Class clazz);
/**
* This method indexes an object and specifies some additional
* properties on the Lucene document basing the description parameter.
*
* The object to index can be either a POJO or a stream on a resource.
*
* @param description the description of the resource to index Map中存储索引文档的中索引的字段用于建立索引文档时使用
* @param inputStream the input stream which will be used to index 此处的Object可以时POJO或stream
*/
Document getDocument(Map description, Object object) throws Exception;
}
Document getDocument(Map description, Object object) throws Exception;
此处设置此方法中Object目的为创建索引文档的几种对象不同而设置:
在SpringLuence中创建索引文档的方式由三种:
1.根据一个流对象创建一个索引文档
2.根据数据库中的对象创建一个索引文档。
3.根据一个类使用反射创建一个索引文档。
关于一个流创建索引文档的:
其中在各种文档创建文档中,所有的文档处理类继承自抽象输入类文档处理器:AbstractInputStreamDocumentHandler
创建一个抽象的类的AbstractInputStreamDocumentHandler用于处理各种文件类型的的
处理器:AbstractTypeFileDocumentHandler
//用于获取文档的独享
public final Document doGetDocumentWithInputStream(Map description, InputStream inputStream) throws IOException {
Document document = new Document();
//获取文档的对象
String text = extractText(inputStream);
if( text!=null && text.length()>0 ) {
//The text is analyzed and indexed but not stored
document.add(new Field("contents", text, Field.Store.NO, Field.Index.TOKENIZED));
}
if( description.get(AbstractInputStreamDocumentHandler.FILENAME)!=null ) {
document.add(new Field("type", "file", Field.Store.YES, Field.Index.UN_TOKENIZED));
document.add(new Field("filename", (String)description.get(AbstractInputStreamDocumentHandler.FILENAME), Field.Store.YES, Field.Index.UN_TOKENIZED));
}
return document;
}
以下各种处理器用于处理各种类型的文档
其中txt文件类型时Luence 默认的 文件处理类型,可以直接得到文档的内容。
(1)关于txt文本文件处理方式如下:
protected Document doGetDocumentWithInputStream(Map description,InputStream inputStream) {
//创建一个索引文档对象
Document document = new Document();
//将文本文件的内容放入一个context的文档域中在使用可以根据索引域的名称获取文本文件的内容
document.add(new Field("contents", new InputStreamReader(inputStream)));
if( description.get(FILENAME)!=null ) {
//添加文件类型的索引域
document.add(new Field("type", "file", Field.Store.YES, Field.Index.UN_TOKENIZED));
document.add(new Field("filename", (String)description.get(FILENAME), Field.Store.YES, Field.Index.UN_TOKENIZED));
}
return document;
}
有Luence基础可以知道在创建索引文档中索引域时必须采用适当的域对象,不然效率可能很低,o(∩_∩)o...哈哈。
(2)关于RTF格式的富文本文档。
RTF不可以直接使用输入流对象必须进行处理。方可以得到RTF中内容信息。
由Java Swing 编程的开发人员一般知道一个简便处理RTF富文本类型的工具:
使用SWing中DefaultStyledDocument,RTFEditorKit类轻易解决问题。
处理方法如下:先将rtf文档转换为输入流inputstream,使用SWing工具处理。
//创建样式文档对象
DefaultStyledDocument styledDoc = new DefaultStyledDocument();
//RTF编辑工具处理文件的内容
new RTFEditorKit().read(inputStream, styledDoc, 0);
//获取文档的内容信息
String rtfContext=styledDoc.getText(0, styledDoc.getLength());
(3)关于Excel的处理方式比较多:使用开源组件处理如Jxl,POI等处理,即可
这里采用的jxl处理的方式:
使用jxl代码如下:
//创建一个工作簿对象
Workbook workbook=Workbook.getWorkbook(inputStream);
//获取并遍历每一个工作单中
for(int cpt = 0; cpt<workbook.getNumberOfSheets(); cpt++) {
Sheet sheet = workbook.getSheet(cpt);
//获取遍历每行中信息
for(int cptRow = 0; cptRow<sheet.getRows(); cptRow++) {
//获取并遍历每列中的信息
for(int cptColumn = 0; cptColumn<sheet.getColumns(); cptColumn++) {
//获取每列的信息
Cell cell = sheet.getCell(cptColumn,cptRow);
String cellText = cell.getContents();
if( cellText!=null && cellText.length()>0 ) {
appendText(text, cellText);
}
}
}
}
(4) PDF文档的处理器设计:
针对PDF的处理器,最好使用PDFBox这个组件,因为这个组件中封装累了关于索引文档对象。如果使用POI,就需要非很
多时间了。
采用PDFBox的LucenePDFDocument对象即可如下:
Document doc=LucenePDFDocument.getDocument(inputStream);
(5)WORD的文档的处理方式:使用textmining的组件即可 tx-extractors.jar解析或者使用POI解析都比较简单。
使用 tx-extractors.jar解析如下:
将doc文档设置成流对象从流中读取信息。
WordExtractor wordDocument = new WordExtractor();
String text = wordDocument.extractText(inputStream);
发表评论
-
【转】Django resources
2014-01-23 14:35 10865Django resources This page li ... -
使用国内镜像源来加速python pypi包的安装
2014-01-16 11:16 197923pipy国内镜像目前有: http://pypi.d ... -
[转 ]vagrant使用简介
2014-01-10 13:53 258051> 简介: vagrant提供了易于配置,重复性 ... -
[转]在Java中调用Python
2014-01-07 13:08 9257在执行之前都需要把jython对应的包加载进去,这个是必须的 ... -
[转]Eclipse配置PyDev插件
2014-01-02 14:25 2873安装python解释器 安装PyDev: 首 ... -
RestFuse的研究(五) Http请求的封装
2014-06-14 15:50 3694在RestFuse中封装了Http请 ... -
RestFuse的研究(四) Junit的Statement的分析
2013-12-06 11:46 1707在RestFuse提供了多种单 ... -
RestFuse的研究(三) Junit的Rule的使用和分析
2013-12-06 11:01 2268在junit中定义一些可以公用的规则(R ... -
RestFuse的研究(二) Junit的Runner的分类和模式
2013-12-06 10:40 1631在Junit4中的调用JunitCore可以采 ... -
RestFuse的研究(一) HttpJunitRunner的实现
2013-12-06 10:11 1773在RestFuse是一种针对Rest We ... -
[转]An open-source JUnit extension to test HTTP/REST APIs
2013-12-06 09:57 1129http://developer.eclipsesource ... -
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3385TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51648文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14273最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8731TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2749TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2842TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2486TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2819TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2732TestNG官方网站: http://testng.or ...
相关推荐
基于Simulink与Simscape的倾转双旋翼飞行器仿真研究:两轴飞行器内环外环PID控制策略在横列式双旋翼矢量飞行器中的应用,基于Simulink与Simscape的倾转双旋翼飞行器仿真研究:两轴飞行器内环外环PID控制策略在横列式双旋翼矢量飞行器中的应用,倾转双旋翼飞行器仿真 simulink simscapeMATLAB两轴飞行器 横列式双旋翼矢量飞行器 内环 外环 pid控制 ,关键词: 倾转双旋翼飞行器; simulink仿真; simscape; MATLAB; 横列式双旋翼矢量飞行器; 内环控制; 外环控制; pid控制 以上关键词用分号分隔为: 倾转双旋翼飞行器; simulink仿真; simscape; MATLAB; 横列式双旋翼; 矢量飞行器; 内环控制; 外环控制; pid控制。,MATLAB Simulink Simscape双旋翼飞行器仿真及PID控制
人力资源+大数据+薪酬报告+涨薪调薪,在学习、工作生活中,越来越多的事务都会使用到报告,通常情况下,报告的内容含量大、篇幅较长。那么什么样的薪酬报告才是有效的呢?以下是小编精心整理的调薪申请报告,欢迎大家分享。相信老板看到这样的报告,一定会考虑涨薪的哦。
MATLAB仿真下的Delta并联机器人正逆运动学分析与Simulink Simscape模拟实践,MATLAB仿真下的Delta并联机器人正逆运动学分析与Simulink Simscape仿真研究,MATLAB仿真 delta并联机器人 simulink simscape仿真 正逆运动学 ,MATLAB; delta并联机器人; Simulink; Simscape仿真; 正逆运动学,MATLAB Simulink Simscape仿真Delta并联机器人:正逆运动学解析
学生管理系统(PDF).pdf
大创项目代码
基于S7-200 PLC与组态王的电气装配生产线全程解析:梯形图程序、接线图及IO分配与组态画面指南,基于S7-200 PLC与组态王的电气装配生产线全程指南:梯形图程序、接线图、IO分配与组态画面解析,基于S7-200 PLC和组态王电气装配生产线控制 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面 ,基于S7-200 PLC; 电气装配生产线控制; 梯形图程序; 接线图原理图; IO分配; 组态画面,基于S7-200 PLC与组态王系统控制的电气装配生产线程序及设计全解析
内容概要:本文档源自北京大学内部的一次研讨会议录,围绕名为 DeepSeek 的大型语言模型进行探讨。主要内容涵盖了 DeepSeek 成功背后的关键因素、直接使用途径及其多样性的应用场景。特别是有关提示词技巧的教学对于普通公众而言,使得利用高级别的人工智能成为触手可及之事。文章展示了多个行业与生活方面的实例,说明了 DeepSeek 如何帮助企业与个人更有效地完成任务。 适用人群:适用于所有层级的人群,从普通大众到专业人士都可以受益,尤其关注希望通过AI工具提高效率的企业和技术爱好者。 使用场景及目标:文章不仅介绍了 DeepSeek 在不同领域的应用可能性,而且详细讲解了具体的提示词策略以便用户获得更好的输出质量。无论是在教育、办公、医疗还是日常生活中,用户可以通过适当调整提示语句从而更好地操控这一强大的工具来达成目的。 其他说明:此次讲座还包括了 DeepSeek 的三种主要访问方法,并附带有在线资源和支持材料(如参考图书),进一步促进了其易用性。同时,也提到了开源特性所带来的技术进步与合作契机,以及它在促进国内外科技交流方面所起的作用。
大创项目代码
【国投证券】Optimus开辟第二战场,推动特斯拉再进阶【发现报告 fxbaogao.com】
永磁同步模型电流预测控制结合滑模新型趋近律:提高系统鲁棒性与稳态性能学习文献,永磁同步模型电流预测控制结合滑模新型趋近律:提高系统鲁棒性与稳态性能学习文献, 永磁同步模型电流预测控制+滑模控制 滑膜控制器采用新型趋近律与扰动观测器结合,提高系统鲁棒性和稳态特性。 电流环采用预测控制双矢量改进算法。 含有对应学习文献 ,永磁同步模型;电流预测控制;滑模控制;新型趋近律;扰动观测器;系统鲁棒性;稳态特性;学习文献,基于新型趋近律与预测控制的永磁同步电机滑模电流控制策略研究
英语学什么_2024-03-05-21-28-250228225649.pdf
基于S7-200 PLC与MCGS组态技术的灌装生产线系统设计与实现:梯形图程序、接线图与组态画面全解析,基于S7-200 PLC和MCGS组态技术的灌装生产线智能化集成系统解决方案:包含梯形图程序、
IEC 63093-11 2018.rar
大创项目代码
小米4C路由器full.bin文件
S7-200PLC四泵供水控制系统设计:包含梯形图程序、接线图与IO分配及组态画面详解,S7-200PLC四泵供水控制系统设计:含梯形图程序、接线图、IO分配及组态画面详解,S7-200PLC程序4泵供水控制系统设计四泵供水控制系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面 ,S7-200PLC程序; 泵供水控制系统设计; 四泵供水控制系统; 梯形图程序; 接线图原理图; IO分配; 组态画面,S7-200 PLC四泵供水控制系统设计与实现:带梯形图程序与原理图详解
【国联证券】核心护城河稳固市场地位,海外业务带来新增长【发现报告 fxbaogao.com】
Delta 台达PLC-EH3铆压机程序:精准控制3轴与自动上下料,带触摸屏与伺服参数设定,含电气BOM与CAD图纸,Delta 台达PLC-EH3铆压机程序:详解3轴Z轴电缸下降距离的位置加扭矩模式与自动化上下料功能,附PLC注释与触摸屏程序及电气图纸,Delta 台达PLC-EH3铆压机程序。 3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式,台达PLC MODBUS通讯控制台达A2伺服扭矩,自动上下料,每个点位可跳点,可设位置和扭矩,PLC程序有完整的注释,触摸屏程序,伺服参数设定程序.电气BOM.电气CAD图纸。 ,Delta;台达PLC-EH3;铆压机程序;3轴控制;位置加扭矩模式;MODBUS通讯;A2伺服扭矩;自动上下料;跳点设置;完整注释;触摸屏程序;伺服参数设定;电气BOM;电气CAD图纸。,Delta PLC-EH3铆压机:三轴MODBUS伺服控制程序
SICAR (汽车标准程序解读)
大创项目代码