Optimize

Optimize()

通过将索引段与另一个合并来最小化索引段的数量。 此操作提高了搜索性能。

public void Optimize()

例子

该示例演示了如何合并索引的段。

string indexFolder = @"c:\MyIndex\";
string documentsFolder1 = @"c:\MyDocuments1\";
string documentsFolder2 = @"c:\MyDocuments2\";
string documentsFolder3 = @"c:\MyDocuments3\";

Index index = new Index(indexFolder); // 在指定文件夹中创建索引

index.Add(documentsFolder1); // 索引指定文件夹中的文档
index.Add(documentsFolder2); // 每次调用 Add 在索引中至少创建一个新段
index.Add(documentsFolder3);

// 合并索引段
index.Optimize();

也可以看看


Optimize(MergeOptions)

通过将索引段与另一个合并来最小化索引段的数量。 此操作提高了搜索性能。

public void Optimize(MergeOptions options)
范围 类型 描述
options MergeOptions 合并选项。

例子

该示例演示了如何使用特定合并选项合并索引段。

string indexFolder = @"c:\MyIndex\";
string documentsFolder1 = @"c:\MyDocuments1\";
string documentsFolder2 = @"c:\MyDocuments2\";
string documentsFolder3 = @"c:\MyDocuments3\";

Index index = new Index(indexFolder); // 在指定文件夹中创建索引

index.Add(documentsFolder1); // 索引指定文件夹中的文档
index.Add(documentsFolder2); // 每次调用 Add 在索引中至少创建一个新段
index.Add(documentsFolder3);

MergeOptions options = new MergeOptions();
options.IsAsync = true; // 异步操作
options.Cancellation = new Cancellation(); // 创建取消对象

// 合并索引段
index.Optimize(options); // 该方法会在操作完成前返回

options.Cancellation.CancelAfter(10000); // 将操作的最长持续时间设置为 10 秒

也可以看看