Solr - 在表单数据输入场景中保存和更新索引时

Solr - When Save and Update an Index In Form Data Entry scenarios

我有一个 Web 表单,我想使用下面的示例代码将第一页的数据保存到索引中。

Startup.Init<SomeModel>("http://localhost:8983/solr/somemodels");
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Quote>>();
solr.Add(new SomeModel() {Id=1001; Content="Some Content"});
solr.Commit();

在最后一页,用户有机会 change/update 他在表单上的条目。我是否也应该使用这行代码?

solr.Add(new SomeModel() {Id=1001; Content="New Content"});

此外,以这种方式更新索引是否是一种好做法?

你可以考虑以下几点。

  1. 有没有可能 user 在第一页做了一些事情,然后在到达最后一页之前就离开了?

If this is valid scenario and data loss is not acceptable, you should save the data.

  1. 如果您只想在使用到最后一页时保存数据,那么您应该执行以下操作。

You should save the data which you want to be saved between pages. At the last page, you save it too SOLR.

希望您还使用一些后端数据源来保存数据,并 solr 用于搜索用例。在这种情况下,建议每次操作更新一次文档。

如果 Cassandra 作为后端。当您多次更新文档时,有可能 tombstone