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"});
此外,以这种方式更新索引是否是一种好做法?
你可以考虑以下几点。
- 有没有可能
user
在第一页做了一些事情,然后在到达最后一页之前就离开了?
If this is valid scenario and data loss is not acceptable, you should
save the data.
- 如果您只想在使用到最后一页时保存数据,那么您应该执行以下操作。
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
。
我有一个 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"});
此外,以这种方式更新索引是否是一种好做法?
你可以考虑以下几点。
- 有没有可能
user
在第一页做了一些事情,然后在到达最后一页之前就离开了?
If this is valid scenario and data loss is not acceptable, you should save the data.
- 如果您只想在使用到最后一页时保存数据,那么您应该执行以下操作。
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
。