我有一个使用了很多动态字段的Solr索引。最近,我改变了代码以减少我们使用Solr索引的数据量,从而显著减少了使用的动态字段数量。
我已经重新索引了我的数据,旧字段的文档计数(在管理模式浏览器中显示)已经降为零。但我不明白为什么这些字段仍然存在。我已经进行了优化,并重新启动了服务器,但我找不到任何信息来了解是否有办法让这些字段消失。
除非我从头开始创建索引,否则我现在是否被卡住这些字段了?我们要减少大量的字段(约200->30),我担心保留它们会对性能产生影响。
我正在使用Solr 1.4。
编辑:动态字段定义仍然存在于schema.xml中,因为在一些情况下我仍在使用它们。只是基于它们的字段数量已经显著减少。
编辑:
这些字段都没有存储,只有索引。所以我无法通过检查返回的文档来看到它们,但我可以在它们上面进行分面处理。
以下是查询我仍在使用的字段的结果...
这是我对其中一个空查询的结果...
查询:
我只在Solr的模式浏览器(/admin/)中看到旧字段(例如mobiles_infrared_s_exact和其他约100个字段)。在那里,我可以看到我曾经使用过的所有动态字段,尽管大多数字段的文档计数为0。
我只是想知道是否有办法从模式浏览器中删除它们,以及它们是否会对性能产生影响,考虑到我有一个包含1000万个文档的索引。
我已经重新索引了我的数据,旧字段的文档计数(在管理模式浏览器中显示)已经降为零。但我不明白为什么这些字段仍然存在。我已经进行了优化,并重新启动了服务器,但我找不到任何信息来了解是否有办法让这些字段消失。
除非我从头开始创建索引,否则我现在是否被卡住这些字段了?我们要减少大量的字段(约200->30),我担心保留它们会对性能产生影响。
我正在使用Solr 1.4。
编辑:动态字段定义仍然存在于schema.xml中,因为在一些情况下我仍在使用它们。只是基于它们的字段数量已经显著减少。
编辑:
这些字段都没有存储,只有索引。所以我无法通过检查返回的文档来看到它们,但我可以在它们上面进行分面处理。
以下是查询我仍在使用的字段的结果...
/?q=*:*&facet=on&facet.field=books_isbn_10_s_exact
结果:
<lst name="books_isbn_10_s_exact">
<int name="1010102457">2</int>
<int name="1110011010">2</int>
<int name="1110011013">2</int>
...
这是我对其中一个空查询的结果...
查询:
/?q=*:*&facet=on&facet.field=mobiles_infrared_s_exact
结果:
<lst name="mobiles_infrared_s_exact"/>
我的schema.xml中这两个字段都使用了这个字段定义:
<dynamicField name="*_s_exact" type="string" indexed="true" stored="false" termVectors="true" omitNorms="true" multiValued="false" />
我只在Solr的模式浏览器(/admin/)中看到旧字段(例如mobiles_infrared_s_exact和其他约100个字段)。在那里,我可以看到我曾经使用过的所有动态字段,尽管大多数字段的文档计数为0。
我只是想知道是否有办法从模式浏览器中删除它们,以及它们是否会对性能产生影响,考虑到我有一个包含1000万个文档的索引。