Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 太阳黑子解算器:是否可以添加一个字段而不重新索引所有行?_Solr_Sunspot_Sunspot Rails_Sunspot Solr_Websolr - Fatal编程技术网

Solr 太阳黑子解算器:是否可以添加一个字段而不重新索引所有行?

Solr 太阳黑子解算器:是否可以添加一个字段而不重新索引所有行?,solr,sunspot,sunspot-rails,sunspot-solr,websolr,Solr,Sunspot,Sunspot Rails,Sunspot Solr,Websolr,关于太阳黑子,它说: 如果对对象的“模式”(可搜索块中的代码)进行更改,则必须对所有对象重新编制索引,以便将更改反映在Solr中 如果不遵循此过程,会发生什么情况 具体地说,我在Websolr上有一个相当大的索引,如果我只向它添加一个布尔字段而不重新编制索引,会发生什么 我希望能够通过布尔字段的true值进行过滤,但我永远不需要通过false或nil值进行过滤。这行得通吗,还是必须始终遵守重新编制索引的警告?在您的情况下,如果添加字段而不为数据编制索引,它仍然有效。 但是,现有数据不会有字段值。

关于太阳黑子,它说:

如果对对象的“模式”(可搜索块中的代码)进行更改,则必须对所有对象重新编制索引,以便将更改反映在Solr中

如果不遵循此过程,会发生什么情况

具体地说,我在Websolr上有一个相当大的索引,如果我只向它添加一个布尔字段而不重新编制索引,会发生什么


我希望能够通过布尔字段的
true
值进行过滤,但我永远不需要通过
false
nil
值进行过滤。这行得通吗,还是必须始终遵守重新编制索引的警告?

在您的情况下,如果添加字段而不为数据编制索引,它仍然有效。
但是,现有数据不会有字段值。
只有插入的新文档才具有相应的值。
您当然可以根据这些值对文档进行筛选,而现有文档的字段值为零

通常这取决于你改变了什么

如果更改字段类型的查询时间分析,则不需要重新索引。 一次简单的重启或堆芯重新加载对您来说是可行的

如果需要所有文档的字段值,则架构中的更改需要重新索引集合。
如果更改字段类型,则需要重新为内容编制索引,因为在索引时对字段类型所做的分析会有所不同。
如果不重新编制索引,则为字段执行的查询时间分析将与已编制索引的分析不同,并且找不到匹配项