摘要:
上文还没有来得及分析Apache Tika是怎样检测文档的mime类型的,以及怎样根据mime类型找到相应的Parser解析类的,下面接着说在tika-parsers.jar路径文件META-INF/services/org.apache.tika.detect.Detector记录了tika提供的... 阅读全文
2013年3月9日 #
摘要:
Apache Tika是怎么识别待解析文档的mime类型的,是怎么根据mime类型得到相应的解析类Parser的,如果我们添加自定义mime类型以及相应的解析类,又该怎么处理呢?前面的文章还没有具体解决这些关键问题在tika-core的jar路径org.apache.tika.mime下有一tika... 阅读全文
2013年3月8日 #
摘要:
上文分析了具体的解析类HtmlParser对网页文档的解析实现源码,了解到了Apache Tika的编码识别的处理方式。(HtmlParser对网页文件的解析其实并没有用到ParseContext上下文类的SAXParser对象,而是用到了另外一个TagSoup组件)本文继续分析Tika对xml格式... 阅读全文
2013年3月7日 #
摘要:
上文我们基本知道Tika是通过SAXParser来解析XHTML文档的,下面我通过一个具体的解析类HtmlParser入手,来看看网页文件的解析过程。首先看看HtmlParser类的继承层次,HtmlParser继承自抽象类AbstractParser,而AbstractParser实现了Parse... 阅读全文
摘要:
上文分析了Apache Tika的编码识别相关接口和实现类本文接着分析Apache Tika用到的一个关键类ParseContext,这里要明白Tika解析文档的方式,Tika将文件都解析为XHTML格式的文档,然后采用SAX基于事件的方式来解析这个XHTML格式,先来看看ParseContext类... 阅读全文
摘要:
因为采用Apache Tika解析网页文件时产生乱码问题,所以后来仔细看了一下Apache Tika源码先浏览一下tika编码识别的相关接口和类的UML模型下面是编码识别接口,EncodingDetector.javapublic interface EncodingDetector { /*... 阅读全文
摘要:
为了让我们的应用程序不依赖于具体的解析器,让我们以统一的接口来访问XML文档,Sun公司开发了JAXP(Java API For XML Processing)API。 JAXP没有扩充解析器新的功能,它是对解析器的一个封装,使开发人员能够独立于具体的解析器,这样我们就可以在应用程序中任意更换解析器,而不用更改应用程序代码。现在主流的解析器都支持DOM和SAX,所以JAXP也都支持。JAXP现在的版本是1.3包含在JDK5.0之中。 javax.xml包及子包,org.w3c.dom包及子包,org.xml.sax包及子包。javax.xml包及子包主要是获取解析器的实例,获取到解析器实例后就 阅读全文
摘要:
Spring总是惊喜不断,这次又提供了Spring Hadoop模块,方便开发人员使用hadoop不少Spring Hadoop 终于发布了 1.0 的正式版,该版本据首个里程碑发布到现在已经 1 年了。在这一年中我们处理了大量来自社区的反馈,不断进行完善和新功能增加。包括简化编程模型和提升一致性、以更小的体积启动并根据需要增加,可移植性的提升等等。详情请看发行说明。Spring for Apache Hadoop 提供了Spring框架用于创建和运行HadoopMapReduce、Hive和Pig作业的功能,包括HDFS和HBase。如果你需要简单的基于 Hadoop 进行作业调度,你可添加 阅读全文
摘要:
项目介绍Tika是一个内容分析工具,自带全面的parser工具类,能解析基本所有常见格式的文件,得到文件的metadata,content等内容,返回格式化信息。总的来说可以作为一个通用的解析工具。特别对于搜索引擎的数据抓去和处理步骤有重要意义。Tika是一个目的明确,使用简单的apache的开源项目。下图是Tika诞生的一个历史过程。Tika项目之初来源于Nutch项目(大家应该都不陌生),现在是Lucene的子项目,所以也是来源于搜索引擎。其实Nutch这个项目的开发过程中,孕育了不少东西,应该都归功于Doug Cutting。我个人也是觉得这件事情很赞,要搞Nutch这样一个通用的搜索引 阅读全文
2013年3月4日 #
摘要:
保存各种信息对于应用程序来说非常平常,大多数时候它们是保存在关系数据库中。数据库处理规范数据类型十分在行,但是在处理如图像、文档等二进制数据时却不是那么得心应手。尽管可以用文件系统作为替代——而且它们还提供了更好的性能。但它们既没有提供用于搜索信息的查询语言,也没有提供表示关系或事务的概念。在很多情况下,允许第三方访问这些存储数据(随着应用程序的不断扩展,这成为一个典型的需求)是一个漫长而复杂的过程(它们不会在一夜之间完成)。内部存储结构很容易影响API架构,以及信息检索与遍历的方式。什么是JSR-170幸运的是,被称为Java内容仓库(Java Content Repository,JCR) 阅读全文