练习 3:索引您自己的数据

练习 3:索引您自己的数据

对于本练习,请使用您选择的数据集。这可以是您本地硬盘驱动器上的文件、您之前使用过的一组数据,或者您打算索引到 Solr 以用于生产应用程序的数据样本。

本练习旨在让您思考您的应用程序需要做什么

  • 您需要索引哪些类型的数据?

  • 您需要做些什么来为您的数据准备 Solr(例如,创建特定字段、设置复制字段、确定分析规则等)

  • 您希望为用户提供哪些类型的搜索选项?

  • 您需要进行多少测试才能确保一切按预期工作?

创建您自己的集合

在开始之前,创建一个新的集合,并根据您的喜好命名。在此示例中,集合将命名为“localDocs”;如果您愿意,请将该名称替换为您选择的任何名称。

$ bin/solr create -c localDocs -s 2 -rf 2

同样,正如我们在上面的练习 2 中看到的那样,这将使用 _default configset 及其提供的所有无模式功能。正如我们之前指出的那样,当我们索引数据时,这可能会导致问题。您可能需要多次迭代索引才能获得正确的模式。

索引思路

Solr 有很多索引数据的方法。选择以下方法之一并在您的系统上尝试一下

使用 bin/solr post 的本地文件

如果您有一个本地文件目录,Post 工具 (bin/solr post) 可以索引一个文件目录。我们在第一个练习中看到了它的实际操作。

在我们的练习中,我们只使用了 JSON、XML 和 CSV,但 Post Tool 也可以处理 HTML、PDF、Microsoft Office 格式(如 MS Word)、纯文本等。

在此示例中,假设本地存在一个名为“Documents”的目录。要为其建立索引,我们将发出如下命令(根据需要更正 -c 参数后的集合名称):

$ bin/solr post -c localDocs ~/Documents

在处理文档时,您可能会遇到错误。这些错误可能是由字段猜测引起的,或者可能不支持该文件类型。索引此类内容说明了为您的数据规划 Solr 的必要性,这需要您了解数据,或许还需要进行一些试错。

SolrJ

SolrJ 是一个基于 Java 的客户端,用于与 Solr 交互。对于基于 JVM 的语言,请使用 SolrJ,或者使用其他 客户端 API 以编程方式创建要发送到 Solr 的文档。

文档屏幕

使用管理界面中的文档屏幕(位于 https://127.0.0.1:8983/solr/#/localDocs/documents),粘贴要建立索引的文档,或从文档类型下拉列表中选择文档构建器,逐个字段构建文档。单击表单下方的提交文档按钮,即可索引您的文档。

更新数据

您可能会注意到,即使您多次在本教程中索引内容,也不会出现重复的结果。这是因为示例 Solr 模式(一个名为 managed-schema.xmlschema.xml 的文件)指定了一个名为 iduniqueKey 字段。每当您向 Solr 发送 POST 命令以添加与现有文档具有相同 uniqueKey 值的文档时,它会自动替换该文档。

您可以通过查看 Solr 管理界面中特定核心的“概览”部分中 numDocsmaxDoc 的值来了解是否发生了这种情况。

numDocs 表示索引中可搜索的文档数量(并且会大于 XML、JSON 或 CSV 文件的数量,因为有些文件包含多个文档)。maxDoc 值可能会更大,因为 maxDoc 计数包括尚未从索引中物理删除的逻辑删除文档。您可以根据需要反复重新发布示例文件,numDocs 永远不会增加,因为新文档会不断替换旧文档。

继续并编辑任何现有的示例数据文件,更改一些数据,然后重新运行 PostTool (bin/solr post)。您将在后续搜索中看到您的更改。

删除数据

如果您需要多次迭代才能使模式正确,您可能需要删除文档以清除集合并重试。但是请注意,仅仅删除文档并不会更改底层的字段定义。本质上,这将允许您在更改字段以满足您的需求后重新索引数据。

您可以通过向更新 URL 发送 POST 删除命令并指定文档的唯一键字段的值,或指定与多个文档匹配的查询来删除数据(请小心使用后者!)。如果我们的请求结构正确,我们也可以使用 bin/solr post 来删除文档。

执行以下命令以删除特定文档:

$ bin/solr post -c localDocs -d "<delete><id>SP2514N</id></delete>"

要删除所有文档,可以使用“按查询删除”命令,例如:

$ bin/solr post -c localDocs -d "<delete><query>*:*</query></delete>"

您还可以修改上述命令,仅删除与特定查询匹配的文档。

练习 3 总结

此时,您已准备好开始处理自己的数据了。

当您准备停止 Solr 并删除所有您使用过的示例并重新开始时,请跳转到整体的总结

或者,如果您愿意,您可以完成其余的练习。