Volante c#数据库引擎:我们如何在Volante索引中进行二进制搜索(或查找)?

时间:2014-09-03 06:46:18

标签: c# indexing

我将尝试在我的私人项目中使用C#Volante数据库引擎。但是提供的示例(DirectoryScan)只是关于从开始或结束读取整个索引。我需要找到例如第一个和其他发生,例如,e。 G:

// c# pseudocode
result = index.GetFirst("lookingforThisString")
while(result != null) {
    doProcess(result);
    result = index.GetNext();
}

有更多关于使用此引擎和索引的示例吗?

1 个答案:

答案 0 :(得分:0)

非唯一索引可以使用Get(from,till)命令的范围参数返回值数组。

这是一个简单的例子:

class MyPersistentClass : Persistent
{
    public string Text { get; set; }
}

// Create the index. Must be non-unique to support duplicate keys
dbRoot.MyIndex = db.CreateIndex<string, MyPersistentClass>(IndexType.NonUnique);

// Put the data
dbRoot.MyIndex.Put("my string", new MyPersistentClass { Text="some value" });
dbRoot.MyIndex.Put("my string", new MyPersistentClass { Text="another value" });

// query the index to get multiple values. The range from and till values are the same
MyPersistentClass[] values = dbRoot.MyIndex.Get("my string", "my string");

// process the first occurrence
if (values.Length > 0)
{
   DoProcess(values[0]);
}