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]); } }
示例中是单个数据的写入和读取,实际上,也是支持批量写入和批量读取的。
上面只是简单示例,如果有疑问,请邮件我:[email protected]。
背景参考:开源搜索引擎Iveely 0.8.0 发布,终见天日
时间: 2024-10-12 08:35:40