如何使用Iveely的数据存储引擎 Iveely Database
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。
背景参考:开源搜索引擎Iveely 0.8.0 发布,终见天日
如何使用Iveely的数据存储引擎 Iveely Database的更多相关文章
- .net之工作流工程展示及代码分享(三)数据存储引擎
数据存储引擎是本项目里比较有特色的模块. 特色一,使用接口来对应不同的数据库.数据库可以是Oracle.Sqlserver.MogoDB.甚至是XML文件.采用接口进行对应: public inter ...
- (转)MySQL 常用数据存储引擎区别
MySQL 常用数据存储引擎区别 原文:https://laravel-china.org/articles/4198/mysql-common-data-storage-engine mysql有多 ...
- 修改MySQL的默认数据存储引擎
因为MySQL默认的是MyISAM数据引擎,不支持事务也不支持外键,所以需要用到Innodb引擎,于是决定将mysql的默认引擎设置为innodb.1 . 查看MySQL存储引擎是用的哪个?登录MyS ...
- mysql数据库 myisam数据存储引擎 表由于索引和数据导致的表损坏 的修复 和检查
一.mysqlcheck 进行表的检查和修复 1.检查mysqlisam存储引擎表的状态 #mysqlcheck -uuser -ppassword database table -c #检查单 ...
- MySQL 的数据存储引擎
MySQL的存储引擎 InnoDB: MySQL5.5之后的默认存储引擎. 采用MVCC来支持高并发,并且实现了四个标准的隔离级别(默认可重复读). 支持事务,支持外键.支持行锁.非锁定读(默认读取操 ...
- mysql 数据存储引擎区别
一,存储类型 二 , MyISAM默认存储引擎 MyISAM 管理非事务表.是ISAM 的扩展格式.除了提供ISAM里所没有的索引的字段管理等的大量功能.MyISAM 还使用一种表格锁定的机制.来优化 ...
- MySQL 常用数据存储引擎区别
mysql有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,除了这两个引擎以为还有许多其他引擎,有官方的,也有一些公司自己研发的.这篇文章主要简单概述一下常用常见的 MySQL ...
- MySQL之数据存储引擎
1.什么是存储引擎: 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处 理文本用txt类型,处理表格用excel,处理图片用png等,数据库中的表也应该有不同的 ...
- Android数据存储引擎---SQLite数据库
目标:是否可以在PC端桌面上使用SQLite数据库制作一个财务文件? 目录: 来源: 实践: 总结和比较: SQLite数据简介 是什么,内部结构是怎样的,数据库和表的关系是什么 有什么用 常用的操作 ...
随机推荐
- High Aavialability with Group Replication-by宋利兵
今天,2016年12月12日, Group Replication GA啦!GA的版本是MySQL-5.7.17. 下载连接如下: http://dev.mysql.com/downloads/mys ...
- MyCat 学习笔记 第八篇.数据分片 之 求摸运算分片
1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值取摸应该是最简单的一种. 优点:数据离散概率较为平均,可以有效的提高应用的数据吞吐. 缺点:比较明显,后期数据运维与迁移比较困难.好在M ...
- MongodbBackup Script
#!/usr/bin/env python # _*_coding:utf-8_*_ # Author: "Edward.Liu" # Author-Email: lonnyliu ...
- Ubuntu进阶学习,指令迅速查询,Bug迅速查询(Ctrl+F)
There is some notes while I am learning Ubuntu Operate System! (Ask Ubuntu) 1-- Hard link : ln comma ...
- 【转】C语言位运算符:与、或、异或、取反、左移与右移详细介绍
转载自:http://www.jb51.net/article/40559.htm,感谢原作者. 以下是对C语言中的位运算符:与.或.异或.取反.左移与右移进行了详细的分析介绍,需要的朋友可以过来参考 ...
- 怎样用好ZBrush中的PaintStop插件
PaintStop是ZBrush®3.1的手绘插件,可以比较真实的模拟手绘风格,尤其是用水彩笔刷画水墨风格画.PaintStop插件可供用户免费使用. PaintStop是一款功能强大的插件,已经被添 ...
- 性能测试一般过程与LR性能测试过程
性能测试作为测试分类的一个大类,等同于系统测试中的功能测试.安全性测试和配置测试等,因此她的测试过程是对整个测试类型中测试过程的一个描述,因此包含了测试需要的确认目标,熟悉系统.获得需求等部分,因此性 ...
- SqlServer 注入技巧
一.SA权限执行命令,如何更快捷的获取结果? 有显示位 显示位 其实这里的关键并不是有无显示位.exec master..xp_cmdshell 'systeminfo'生成的数据写进一张表的时候,会 ...
- Python进阶-面向对象
类的成员 类的成员可以分为三类:字段.方法.属性 一:字段: 普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同 普通字段属于对象 静态字段属于类 字段的定义和使用 ...
- python中的Unittest常用方法
import unittest class SimpleUnitTest(unittest.TestCase): def test_Fail(self): self.failUnless(True) ...