zoukankan      html  css  js  c++  java
  • 如何使用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 发布,终见天日

  • 相关阅读:
    8种元素定位方式
    接口MD5加密如何测试?
    web自动化测试框架 —数据驱动测试
    等待方式
    全面开展测试需求分析
    字符串格式化(%方式 与 format方式)
    Python中八大基本数据类型之 集合
    Python中 __new__ 和 __init__ 的区别
    C/S模式与B/S模式的工作原理
    剑指offer--把二叉树打印成多行
  • 原文地址:https://www.cnblogs.com/liufanping/p/4490042.html
Copyright © 2011-2022 走看看