自定义比较器
使用自定义比较器,需要实现 NoSQL Assistant 预先定义的LevelDBAdminInterface.IComparator
接口:
public interface IComparator
{
/// <summary>
/// 对两个键进行比较
/// </summary>
/// <param name="key1"></param>
/// <param name="key2"></param>
/// <returns></returns>
int Compare(byte[] key1, byte[] key2);
}
下面是一个使用自定义比较器的例子:
/// <summary>
/// 用户自定义的比较器需要实现IComparator接口,类名必须为CustomComparator,这是一个例子,脚本不能使用命名空间
/// </summary>
public class CustomComparator : LevelDBAdminInterface.IComparator
{
public int Compare(byte[] key1, byte[] key2)
{
int i = 0;
for (; i < key1.Length && i < key2.Length; i++)
{
int diff = key1[i] - key2[i];
if (diff != 0)
return diff;
}
if (i < key1.Length)
{
return 1;
}
if (i < key2.Length)
{
return -1;
}
return 0;
}
}
关于LevelDB比较器,请参考:https://github.com/google/leveldb/blob/main/doc/index.md#comparators