TIKA - 架构

Tika的应用程序级架构

应用程序员可以轻松地将Tika集成到他们的应用程序中. Tika提供了一个命令行界面和一个GUI,使用户更友好.

在本章中,我们将讨论构成Tika体系结构的四个重要模块.下图显示了Tika的体系结构及其四个模块 :

  • 语言检测机制.

  • MIME检测机制.

  • 分析器界面.

  • Tika Facade类.

Tika Architecture

语言检测机制

每当a文本文档传递给Tika,它将检测它的编写语言.它接受没有语言注释的文档,并通过检测语言将该信息添加到文档的元数据中.

为了支持语言识别,Tika有一个名为语言标识符在包 org.apache.tika.language 中,以及一个语言标识存储库,其中包含来自给定文本的语言检测算法. Tika内部使用N-gram算法进行语言检测.

MIME检测机制

Tika可以根据MIME标准检测文档类型. Tika中的默认MIME类型检测使用 org.apache.tika.mime.mimeTypes 完成.它使用 org.apache.tika.detect.Detector 界面获取大部分内容类型检测.

内部Tika使用多种技术,如文件全局,内容类型提示,魔术字节,字符编码和其他几种技术.

解析器接口

org.apache.tika.parser的解析器接口是解析Tika中文档的关键接口.此接口从文档中提取文本和元数据,并为愿意编写解析器插件的外部用户汇总.

使用特定于各个文档类型的不同具体解析器类,Tika支持很多文档格式.这些特定于格式的类通过直接实现解析器逻辑或使用外部解析器库提供对不同文档格式的支持.

Tika Facade Class

使用Tika facade类是从Java调用Tika的最简单直接的方法,它遵循门面设计模式.您可以在Tika API的org.apache.tika包中找到Tika facade类.

通过实现基本用例,Tika充当了景观经纪人.它抽象了Tika库的底层复杂性,如MIME检测机制,解析器接口和语言检测机制,并为用户提供了一个简单易用的界面.

Tika的特点

  • 统一解析器接口 :  Tika在单个解析器接口中封装了所有第三方解析器库.由于此功能,用户可以避免选择合适的解析器库并根据遇到的文件类型使用它.

  • 内存不足用法 :  Tika消耗较少的内存资源,因此可以轻松地嵌入Java应用程序.我们还可以在应用程序中使用Tika,该应用程序在移动PDA等资源较少的平台上运行.

  • 快速处理 : 可以预期从应用程序中快速检测和提取内容.

  • 灵活的元数据 :  Tika了解用于描述文件的所有元数据模型.

  • 分析器集成 :  Tika可以在单个应用程序中使用可用于每种文档类型的各种解析器库.

  • MIME类型检测 :  Tika可以检测并提取MIME标准中包含的所有媒体类型的内容.

  • 语言检测 :  Tika包括语言识别功能,因此可以在多语言网站中基于语言类型的文档中使用.

Tika的功能

Tika支持各种功能 :

  • 文档类型检测

  • 内容提取

  • 元数据提取

  • 语言检测

文档类型检测

Tika使用各种检测技术并检测提供给它的文档类型.

检测

内容提取

Tika有一个解析器库,可以解析各种文档格式的内容并提取它们.在检测到文档类型后,它从解析器存储库中选择适当的解析器并传递文档.不同类别的Tika有解析不同文档格式的方法.

Extraction

元数据提取

与内容一起,Tika使用与内容提取相同的过程提取文档的元数据.对于某些文档类型,Tika有提取元数据的类.

Extraction1

语言检测

在内部,Tika遵循 n-gram 等算法来检测给定文档中内容的语言. Tika依赖于 Languageidentifier Profiler 等类来进行语言识别.

Detection1