Solr 6.1 - 我的 collection 的 `managed-schema` 文件在哪里
Solr 6.1 - Where is my collection's `managed-schema` file
我在 Windows 7.
上使用 Solr 6.1
我从管理员 UI 看到了我的 collection 的文件,其中有一个 managed-schema
文件。
当我尝试使用 managed-schema 文件中的一行搜索(使用 Notepad++)我的 Solr 目录时,它什么也没找到。
我还尝试更改 Solr 目录中的大部分(如果不是全部)managed-schema
文件,但在重新加载核心后我的更改仍然没有应用(以及 managed-schema
在后台UI保持不变)。
有人可以向我解释一下我在管理 UI 中看到的这个文件是什么吗?
是真实文件还是虚拟文件?
我尝试做的 - 如果这很重要 - 是让一些字段不是多值的。似乎 Solr 出于某种原因喜欢将它们全部设为多值(admin UI 的 managed-schema
文件中包含一些 <field name="fieldname" type="strings"/>
,所以我认为这是导致问题的原因 - 我将尝试使用string
那里),所以我正在努力改变它的配置。但是,文件名、文件路径等似乎都在不同版本之间发生变化。所以,我什至找不到架构配置路径。非常混乱的东西。 :(
有人能帮忙吗?
编辑:
基于我在我的 Solr 文件夹中找不到单个 schema.xml
配置文件的事实,我猜这个文件现在已经过时了......我 guess 在这个版本的 Solr 中尝试使用这样的文件是没有意义的...
更新:
在深入研究 Solr 的(无用且具有误导性的)文档页面以外的地方后,我得到了这些:
https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201509.mbox/
https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201509.mbox/
所以,如果那是真正的文档,我想我应该首先找到一种方法来获取我的 zookeeper 正在侦听的端口,然后将我的配置文件上传到那里。花花公子,除了我没有在管理 UI 的任何地方看到 ZooKepeer 端口的事实。我也没有设置任何 ZooKeeper。我希望默认存在一个... :(
更新 2:
https://wiki.apache.org/solr/SolrCloud
By default, an embedded Zookeeper server runs at the Solr port plus 1000, so 9983.
那个信息似乎解决了我的工作问题...
只需将托管架构重命名为 schema.xml。
然后重装一个核心。
If you have an existing Solr collection that uses
ClassicIndexSchemaFactory, and you wish to convert to use a managed
schema, you can simplify modify the solrconfig.xml to specify the use
of the ManagedIndexSchemaFactory. Once Solr is restarted and it
detects that a schema.xml file exists, but the
managedSchemaResourceName file (ie: "managed-schema") does not exist,
the existing schema.xml file will be renamed to schema.xml.bak and the
contents are re-written to the managed schema file. If you look at the
resulting file, you'll see this at the top of the page:
请仔细阅读。
从 schema.xml 切换到托管架构
An alternative to using a managed schema is to explicitly configure a
ClassicIndexSchemaFactory. ClassicIndexSchemaFactory requires the use
of a schema.xml configuration file, and disallows any programatic
changes to the Schema at run time. The schema.xml file must be edited
manually and is only loaded only when the collection is loaded.
<schemaFactory class="ClassicIndexSchemaFactory"/>
https://cwiki.apache.org/confluence/display/solr/Schema+Factory+Definition+in+SolrConfig
已更新:
更改为手动编辑schema.xml
如果您在启用托管架构的情况下启动了 Solr,并且希望切换为手动编辑 schema.xml 文件,则应执行以下步骤:
- 将托管架构文件重命名为 schema.xml。修改solrconfig.xml
替换 schemaFactory class.
- 删除任何
ManagedIndexSchemaFactory 定义(如果存在)
- 添加一个
ClassicIndexSchemaFactory定义如上图 Reload了
核心。
在ubuntu中:对于版本 Solr 6.6.0 集合存储在“/var/solr/data/collection_name”
我在 Windows 7.
上使用 Solr 6.1我从管理员 UI 看到了我的 collection 的文件,其中有一个 managed-schema
文件。
当我尝试使用 managed-schema 文件中的一行搜索(使用 Notepad++)我的 Solr 目录时,它什么也没找到。
我还尝试更改 Solr 目录中的大部分(如果不是全部)managed-schema
文件,但在重新加载核心后我的更改仍然没有应用(以及 managed-schema
在后台UI保持不变)。
有人可以向我解释一下我在管理 UI 中看到的这个文件是什么吗? 是真实文件还是虚拟文件?
我尝试做的 - 如果这很重要 - 是让一些字段不是多值的。似乎 Solr 出于某种原因喜欢将它们全部设为多值(admin UI 的 managed-schema
文件中包含一些 <field name="fieldname" type="strings"/>
,所以我认为这是导致问题的原因 - 我将尝试使用string
那里),所以我正在努力改变它的配置。但是,文件名、文件路径等似乎都在不同版本之间发生变化。所以,我什至找不到架构配置路径。非常混乱的东西。 :(
有人能帮忙吗?
编辑:
基于我在我的 Solr 文件夹中找不到单个 schema.xml
配置文件的事实,我猜这个文件现在已经过时了......我 guess 在这个版本的 Solr 中尝试使用这样的文件是没有意义的...
更新:
在深入研究 Solr 的(无用且具有误导性的)文档页面以外的地方后,我得到了这些:
https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201509.mbox/
https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201509.mbox/
所以,如果那是真正的文档,我想我应该首先找到一种方法来获取我的 zookeeper 正在侦听的端口,然后将我的配置文件上传到那里。花花公子,除了我没有在管理 UI 的任何地方看到 ZooKepeer 端口的事实。我也没有设置任何 ZooKeeper。我希望默认存在一个... :(
更新 2:
https://wiki.apache.org/solr/SolrCloud
By default, an embedded Zookeeper server runs at the Solr port plus 1000, so 9983.
那个信息似乎解决了我的工作问题...
只需将托管架构重命名为 schema.xml。 然后重装一个核心。
If you have an existing Solr collection that uses ClassicIndexSchemaFactory, and you wish to convert to use a managed schema, you can simplify modify the solrconfig.xml to specify the use of the ManagedIndexSchemaFactory. Once Solr is restarted and it detects that a schema.xml file exists, but the managedSchemaResourceName file (ie: "managed-schema") does not exist, the existing schema.xml file will be renamed to schema.xml.bak and the contents are re-written to the managed schema file. If you look at the resulting file, you'll see this at the top of the page:
请仔细阅读。
从 schema.xml 切换到托管架构
An alternative to using a managed schema is to explicitly configure a ClassicIndexSchemaFactory. ClassicIndexSchemaFactory requires the use of a schema.xml configuration file, and disallows any programatic changes to the Schema at run time. The schema.xml file must be edited manually and is only loaded only when the collection is loaded.
<schemaFactory class="ClassicIndexSchemaFactory"/>
https://cwiki.apache.org/confluence/display/solr/Schema+Factory+Definition+in+SolrConfig
已更新:
更改为手动编辑schema.xml
如果您在启用托管架构的情况下启动了 Solr,并且希望切换为手动编辑 schema.xml 文件,则应执行以下步骤:
- 将托管架构文件重命名为 schema.xml。修改solrconfig.xml 替换 schemaFactory class.
- 删除任何 ManagedIndexSchemaFactory 定义(如果存在)
- 添加一个 ClassicIndexSchemaFactory定义如上图 Reload了 核心。
在ubuntu中:对于版本 Solr 6.6.0 集合存储在“/var/solr/data/collection_name”