1

在 Sunspot 的文档中,它说:

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

如果不遵循此程序会怎样?

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

我希望能够按true布尔字段的值进行过滤,但我永远不需要按falsenil值进行过滤。这会奏效,还是必须始终遵守重新索引的警告?

4

1 回答 1

3

在您的情况下,如果您添加字段并且不索引数据,它仍然可以工作。
但是,现有数据将没有该字段的值。
只有插入的新文档才会有它的值。
您当然可以根据值过滤文档,并且现有文档的字段值为零。

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

如果更改字段类型的查询时间分析,则不需要重新索引。一个简单的重新启动或核心重新加载会为您工作。

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

于 2012-09-14T11:02:27.143 回答