3.1.数据源

优质
小牛编辑
133浏览
2023-12-01

索引的数据可以来自各种各样不同的来源:SQL数据库、纯文本、HTML文件、邮件等等。从Sphinx/Coreseek的视角看,索引数据是一个结构化的文档的集合,其中每个文档是字段的集合,这和SQL数据库的视角有所不同,在那里,每一行代表一个文档,每一列代表一个字段。

由于数据来源的不同,需要不同的代码来获取数据、处理数据以供Sphinx/Coreseek进行索引的建立。这种代码被称之为数据源驱动程序(简称:驱动或数据源)。

在本文撰写时,Sphinx/Coreseek中包括MySQL和PostgreSQL数据源的驱动程序,这些驱动使用数据库系统提供的C/C++ 原生接口连接到数据库服务器并获取数据。此外,Sphinx/Coreseek还提供了额外的被称为xmlpipe的数据源驱动,该驱动运行某个具体的命 令,并从该命令的stdout中读入数据。数据的格式在Section3.8, “xmlpipe 数据源”中有介绍。经过发展,Coreseek还提供了具有特色的Python数据源驱动,可以使用Python编写数据获取脚本自定义数据源,从而得以获取任何已知世界和未知世界的数据。

如果确有必要,一个索引的数据可以来自多个数据源。这些数据将严格按照配置文件中定义的顺序进行处理。所有从这些数据源获取到的文档将被合并,共同产生一个索引,如同他们来源于同一个数据源一样。