Plugins 在solrcloud模式下,将自定义标记器工厂作为插件添加到Solr需要哪些操作?

Plugins 在solrcloud模式下,将自定义标记器工厂作为插件添加到Solr需要哪些操作?,plugins,solr,tokenize,solrcloud,Plugins,Solr,Tokenize,Solrcloud,我正试图遵循将包含自定义标记器的jar添加到以solrcloud模式运行的实例的步骤。出于操作原因,我希望通过Solr的各种配置管理API来实现这一点,而不是将文件放到文件系统的某个地方。我的工作流程是: 使用Configsets API上载我最终需要的配置集。这很有效 使用blobstoreapi将jar作为blob上传。这是有效的;我可以看到我上传的blob 使用_默认配置集创建集合。这是必要的,因为在使用自定义标记器时存在鸡和蛋的问题:必须存在标记器才能创建集合,但在创建集合之前不能加载标

我正试图遵循将包含自定义标记器的jar添加到以solrcloud模式运行的实例的步骤。出于操作原因,我希望通过Solr的各种配置管理API来实现这一点,而不是将文件放到文件系统的某个地方。我的工作流程是:

  • 使用Configsets API上载我最终需要的配置集。这很有效
  • 使用blobstoreapi将jar作为blob上传。这是有效的;我可以看到我上传的blob
  • 使用_默认配置集创建集合。这是必要的,因为在使用自定义标记器时存在鸡和蛋的问题:必须存在标记器才能创建集合,但在创建集合之前不能加载标记器。最简单的方法似乎是创建一个集合,其中配置具有空模式,添加标记器,然后更改配置
  • 使用带有映射的
    {“Add runtimelib”:{“name”:“blob name”,“version”:1}
    config
    命令,将blob添加为新集合的运行时库。如果我随后请求solr/admin/collection/config/overlay,我会看到:
  • 这就是我被卡住的地方。Solr手册前面提到的自定义插件部分中有一个示例,演示了如何创建
    ValueSourceParser
    ,以便
    SolrResourceLoader
    可以找到它。此示例似乎是手册中记录的用于处理程序和组件的命令之一的实例。但是这些命令似乎都与标记器无关,尽管SolrCloud下关于管理插件的部分明确表示可以加载标记器
  • 那么,如何从插件中设置标记器工厂,以便在
    (and)中引用它呢?这一问题的讨论显然是相关的,但也有点模糊。标记器是“模式组件”吗?如果是这样的话,那么该问题中声明不能从Blob存储加载模式组件的注释与声明可以在云模式下从自定义插件加载令牌化程序的手册直接冲突

    值得一提的是,我们在独立模式下工作得很好,将jar文件放到dist dir中,并向solrconfig.xml添加适当的
    声明

    {"overlay":
      {"znodeversion":1,
       "runtimeLib": {"blob_name": {"name": "blob_name","version":1}}}}