Iveely 数据存储引擎是为Iveely 搜索引擎提供数据存储的机制。
适用于:频繁数据插入、数据读取。数据更改或者删除数据不适合Iveely Database,存储结构是按照搜索引擎数据存储要求(频繁读、频繁写、几乎无删)设计,因此不是所有的数据存储都可以用Iveely Database。
安装部署
在下载的Iveely database中,只需要启动RunDatabase.bat,Linux下,直接启动Iveely.Database.jar,启动后,打开UI下的index.html即可看到所有当前数据存储中的数据库、表、数量等等信息。
如果UI能够正常显示,则说明数据引擎已经正常启动。
Iveely Database有两种使用方式,一个是本地应用模式,类似于access等本地数据存储,还有一个是网络远程模式,根据IP和端口号存储数据。两者均需要添加lib:Iveely.Database.jar。
本地模式
public void localMode() {
// 1. Create warehouse.
Warehouse warehouse = LocalStore.getWarehouse("iveely_test"); // 2. Create table.
warehouse.createTable("MyTableName");
warehouse.createColumn("MyTableName", "MyId", Types.INTEGER, true);
warehouse.createColumn("MyTableName", "MyColumnA", Types.STRING, false);
warehouse.createColumn("MyTableName", "MyColumnB", Types.DOUBLE, false); // 3. Insert data.
int recordId = warehouse.insert("MyTableName", new Object[]{1, "this is for MyColumnA", 0.8}); // 4. Select data.
Object[] obj = warehouse.selectById("MyTable", recordId);
System.out.println(obj[1]);
}
远程模式
默认远程访问端口号:4321。代码使用示例如下:
public void remoteMode() { // 1. Create connector.
DbConnector connector = new DbConnector("iveely_text", "127.0.0.1", 4321); // 2. Create table.
boolean isTableCreated = connector.createTable("MyTableName",
new String[]{"MyId", "MyColumnA", "MyColumnB"},
new Types[]{Types.INTEGER, Types.STRING, Types.DOUBLE},
new boolean[]{true, false, false});
if (isTableCreated) { // 3. Insert data.
int recordId = connector.insert("MyTableName", new Object[]{1, "this is for MyColumnA", 0.8});
System.out.println(recordId); // 4. Select Data.
Object[] obj = connector.selectOne("MyTableName", recordId);
System.out.println(obj[1]);
}
}
示例中是单个数据的写入和读取,实际上,也是支持批量写入和批量读取的。
上面只是简单示例,如果有疑问,请邮件我:liufanping@iveely.com。