Solr 索引

本节介绍索引的过程:将内容添加到 Solr 索引,并在必要时修改该内容或删除它。

通过将内容添加到索引,我们使其可以通过 Solr 进行搜索。

Solr 索引可以接受来自许多不同来源的数据,包括 XML 文件、逗号分隔值 (CSV) 文件、从数据库中的表提取的数据以及 Microsoft Word 或 PDF 等常见文件格式的文件。

以下是将数据加载到 Solr 索引中的三种最常见方法

  • 使用 Solr Cell 和 Apache Tika 进行索引,基于 Apache Tika 构建,用于摄取二进制文件或结构化文件,如 Office、Word、PDF 和其他专有格式。

  • 通过从可以生成此类请求的任何环境向 Solr 服务器发送 HTTP 请求来上传 XML 文件。

  • 编写自定义 Java 应用程序以通过 Solr 的 Java 客户端 API 摄取数据(在 客户端 API 中有更详细的描述)。如果您正在使用提供 Java API 的应用程序(例如内容管理系统 (CMS)),则使用 Java API 可能是最佳选择。

无论使用哪种方法来摄取数据,都有一个用于输入到 Solr 索引的数据的通用基本数据结构:一个包含多个字段文档,每个字段都有一个名称并包含内容,该内容可能为空。其中一个字段通常被指定为唯一 ID 字段(类似于数据库中的主键),尽管 Solr 并不严格要求使用唯一 ID 字段。

如果字段名称在与索引关联的模式中定义,则当内容被标记化时,将对该字段的内容应用与该字段关联的分析步骤。未在模式中显式定义的字段将被忽略或映射到动态字段定义(如果存在匹配字段名称的定义)。

Solr 示例目录

使用“-e”选项启动 Solr 时,example/ 目录将用作创建的示例 Solr 实例的基本目录。此目录还包括一个 example/exampledocs/ 子目录,其中包含各种格式的示例文档,您可以使用这些示例文档来试验各种示例的索引。

用于传输文件的 curl 实用程序

本节中的许多说明和示例都使用了 curl 实用程序,用于通过 URL 传输内容。curl 通过 HTTP、FTP 和许多其他协议发布和检索数据。大多数 Linux 发行版都包含 curl 的副本。您可以在 http://curl.haxx.se/download.html 找到适用于 Linux、Windows 和许多其他操作系统的 curl 下载。curl 的文档可在此处找到:http://curl.haxx.se/docs/manpage.html

对于示例或测试,使用 curl 或其他命令行工具来发布数据是可以的,但这并不是在生产环境中实现最佳更新性能的推荐方法。使用 Solr Cell 或本节中描述的其他方法将获得更好的性能。

除了 curl 之外,您还可以使用 GNU wget (http://www.gnu.org/software/wget/) 等实用程序或使用 Perl 管理 GET 和 POST,尽管命令行选项会有所不同。