Solr schema.xml Solr 无法识别的更改
Solr schema.xml changes not recognized by Solr
我最近对我的 schema.xml
文件做了一个小改动。基本上我唯一做的就是更改 StopFilter 使用的停用词文件:
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
变成
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_de.txt" />
stopwords_de.txt
来自 Solr 提供的一组预定义停用词。
但是,我现在的问题是,即使我重建索引,架构中的更改也不会应用。我检查了该字段的 Solr Admin UI 模式浏览器,StopFilter 在重新索引后仍然使用旧的停用词文件。
我是否需要重新加载核心甚至重新启动 Solr 才能应用这些更改?到目前为止,重建索引做得很好。
我在我们的 Plone 4.2.6 系统上使用 Collective Solr 4.1.0 Search。
简单地重新启动 Solr 就完成了这项工作。至此,Solr 使用更改后的 schema.xml
。 StopFilter 的更改有效,我可以在 UI 的分析器选项中检查它。
重启服务器。另外,请查看 documentation 关于重新加载核心的内容。
http://localhost:8983/solr/admin/cores?action=RELOAD&core=YourCoreName
在不重新启动服务器的情况下重新加载核心。
请注意,自 Solr 4.0 起,不会重新加载所有内容(例如 <dataDir>
中的更改将被忽略)。您可以参考 SOLR-3592 了解有关该主题的更多信息。
如果您发现自己面临这个问题,即使您使用的是较新版本的 Solr(在我的例子中是 8.10),请确保删除文件 <SOLR HOME>/server/solr/<your core>/conf/managed-schema
并重新启动 solr 服务器。在重新启动期间,Solr 将读取 schema.xml
文件并创建一个新的 managed-schema
文件以反映更改。
我最近对我的 schema.xml
文件做了一个小改动。基本上我唯一做的就是更改 StopFilter 使用的停用词文件:
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
变成
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_de.txt" />
stopwords_de.txt
来自 Solr 提供的一组预定义停用词。
但是,我现在的问题是,即使我重建索引,架构中的更改也不会应用。我检查了该字段的 Solr Admin UI 模式浏览器,StopFilter 在重新索引后仍然使用旧的停用词文件。
我是否需要重新加载核心甚至重新启动 Solr 才能应用这些更改?到目前为止,重建索引做得很好。
我在我们的 Plone 4.2.6 系统上使用 Collective Solr 4.1.0 Search。
简单地重新启动 Solr 就完成了这项工作。至此,Solr 使用更改后的 schema.xml
。 StopFilter 的更改有效,我可以在 UI 的分析器选项中检查它。
重启服务器。另外,请查看 documentation 关于重新加载核心的内容。
http://localhost:8983/solr/admin/cores?action=RELOAD&core=YourCoreName
在不重新启动服务器的情况下重新加载核心。
请注意,自 Solr 4.0 起,不会重新加载所有内容(例如 <dataDir>
中的更改将被忽略)。您可以参考 SOLR-3592 了解有关该主题的更多信息。
如果您发现自己面临这个问题,即使您使用的是较新版本的 Solr(在我的例子中是 8.10),请确保删除文件 <SOLR HOME>/server/solr/<your core>/conf/managed-schema
并重新启动 solr 服务器。在重新启动期间,Solr 将读取 schema.xml
文件并创建一个新的 managed-schema
文件以反映更改。