谁能告诉我两者之间的区别 我可以看到执行时间方面的差异,但我希望从功能角度来看有所不同。
void Rebuild();
void Rebuild(IndexingOptions indexingOptions);
Task RebuildAsync(IndexingOptions indexingOptions, CancellationToken cancellationToken);
void Refresh();
void Refresh(IIndexable indexableStartingPoint, IndexingOptions indexingOptions);
void Refresh(IIndexable indexableStartingPoint);
Task RefreshAsync(IIndexable indexableStartingPoint, IndexingOptions indexingOptions, CancellationToken cancellationToken);
void Update(IEnumerable<IndexableInfo> indexableInfo);
void Update(IEnumerable<IIndexableUniqueId> indexableUniqueIds);
void Update(IEnumerable<IIndexableUniqueId> indexableUniqueIds, IndexingOptions indexingOptions);
void Update(IIndexableUniqueId indexableUniqueId);
void Update(IIndexableUniqueId indexableUniqueId, IndexingOptions indexingOptions);
答案 0 :(得分:0)
Rebuild:如果您进行了任何更改,例如...更改schema.xml。所做的更改就像您添加了一个字段并更改了字段的字段类型一样。 在这种情况下,您需要重建索引以反映更改。
刷新:如果要添加更多或更新现有索引的数据。您将刷新它。 例如:您已使用Solr的DIH功能并为数据库建立索引。如果数据库的数据被添加或修改了值,则需要在Solr索引中刷新它。您将在此处通过调用Solr的Delta导入来使用刷新。
更新:您可以通过传递文档的唯一ID来指定要更新的文档,以及在需要更新任何特定字段的情况下要更新的所有字段。
注意:我没有使用上面的api。我建议您仔细阅读api文档,并详细了解特定的api。