Solr 关于加载 Schema 更改的问题
Solr Question about Loading Changes to Schema
我是 Solr 的新手,在通过 pysolr
添加文档时收到以下错误:
pysolr.SolrError: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=bc4aa768-6f35-4888-80e0-1578d9971b3c] Error adding field 'periodical_nlm'='2984692R' msg=For input string: "2984692R"]
我最终发现添加的第一个 periodical_nlm
值是 404536.0
,所以我认为这是一个类型问题。在 Python 中,我然后在添加 2984692R
之前将每个 periodical_nlm
显式转换为字符串。但是,错误仍然存在。
我用 Google 搜索了一下,发现我应该明确地告诉 Solr 我希望该字段是一个字符串。我对架构还不是很了解 "hands on",所以我有一些问题:
(1) 似乎有两个架构文件:核心目录中的 managed-schema
和核心 conf
文件夹中的 managed-schema
。我假设正在使用的初始化模式是 conf
文件夹中的模式?
(2) 为了顺利进行,我应该更新哪个?我尝试将以下内容添加到核心目录中的架构文件,但错误仍然存在:
field name="periodical_nlm" type="string" indexed="true" stored="true" required="false" multiValued="false" />
我是否需要重新运行一些初始化过程或单独向 conf
文件中添加一些内容?
非常感谢,如果您需要更多信息,请告诉我。我 运行 在 Windows 10 Home x64 平台上使用(不确定这是否重要,如果我需要 运行...)。
只要在更改conf
下的managed-schema
文件后重新加载核心就可以了。请注意,您应该在 之前 对内容进行索引 - 因此您可能需要通过删除所有内容来清理索引,然后更改架构并重新索引您的内容。更改架构不会更改已编入索引的内容。
否则你的假设是正确的,无模式模式(类型由提交的第一个值的格式决定(不是类型 - 因为通常不以任何方式包含,所有值在被提交时都只是字符串已提交,因此 Solr 会尝试通过应用模式匹配的层次结构来猜测类型))对于原型制作很有用 - 当您转向生产时,您应该始终明确定义模式以避免出现您在此处看到的问题。
我是 Solr 的新手,在通过 pysolr
添加文档时收到以下错误:
pysolr.SolrError: Solr responded with an error (HTTP 400): [Reason: ERROR: [doc=bc4aa768-6f35-4888-80e0-1578d9971b3c] Error adding field 'periodical_nlm'='2984692R' msg=For input string: "2984692R"]
我最终发现添加的第一个 periodical_nlm
值是 404536.0
,所以我认为这是一个类型问题。在 Python 中,我然后在添加 2984692R
之前将每个 periodical_nlm
显式转换为字符串。但是,错误仍然存在。
我用 Google 搜索了一下,发现我应该明确地告诉 Solr 我希望该字段是一个字符串。我对架构还不是很了解 "hands on",所以我有一些问题:
(1) 似乎有两个架构文件:核心目录中的 managed-schema
和核心 conf
文件夹中的 managed-schema
。我假设正在使用的初始化模式是 conf
文件夹中的模式?
(2) 为了顺利进行,我应该更新哪个?我尝试将以下内容添加到核心目录中的架构文件,但错误仍然存在:
field name="periodical_nlm" type="string" indexed="true" stored="true" required="false" multiValued="false" />
我是否需要重新运行一些初始化过程或单独向 conf
文件中添加一些内容?
非常感谢,如果您需要更多信息,请告诉我。我 运行 在 Windows 10 Home x64 平台上使用(不确定这是否重要,如果我需要 运行...)。
只要在更改conf
下的managed-schema
文件后重新加载核心就可以了。请注意,您应该在 之前 对内容进行索引 - 因此您可能需要通过删除所有内容来清理索引,然后更改架构并重新索引您的内容。更改架构不会更改已编入索引的内容。
否则你的假设是正确的,无模式模式(类型由提交的第一个值的格式决定(不是类型 - 因为通常不以任何方式包含,所有值在被提交时都只是字符串已提交,因此 Solr 会尝试通过应用模式匹配的层次结构来猜测类型))对于原型制作很有用 - 当您转向生产时,您应该始终明确定义模式以避免出现您在此处看到的问题。