Как создать Индекс, используя Java API для orientdb 3.0? - PullRequest
0 голосов
/ 26 апреля 2020

Я использую oriendb мульти-модель java API . Я использую классы OVertex и OEdge для хранения своих документов. Они наследуются от класса OElement . Кажется, что класс OElement не предоставляет метод createIndex(). Я знаю, что это возможно, если бы мы использовали OClass для создания классов и хранения документов.

Как создать индекс с помощью многомодельного API, если я использую OVertex и OEdge классы.

Мне не хватает ссылки [OVertex,OEdge]--inherits-from-->[OElement]--(?)-->[OClass]

1 Ответ

0 голосов
/ 05 мая 2020

Если вы используете JAVA мультимодельный API, самый чистый способ, который я нашел, был:

// create the connection pool for orientdb
OrientDB orient = new OrientDB(orientUrl, OrientDBConfig.defaultConfig());
OrientDBConfigBuilder poolCfg = OrientDBConfig.builder();
poolCfg.addConfig(OGlobalConfiguration.DB_POOL_MIN, 2);
poolCfg.addConfig(OGlobalConfiguration.DB_POOL_MAX, 5);
ODatabasePool pool = new ODatabasePool(orientUrl, databaseName, orientUser, orientPass, poolCfg.build());

// acquire the orient pool connection
try (ODatabaseSession db = pool.acquire()) {
        // check and create vertex/edge class
        if (db.getClass("className") == null) {
            // create the class if it does not exist in the DB
            OClass orientClass =
                    db.createVertexClass("className");
            // OR db.createEdgeClass("className");
            orientClass.createProperty("id", OType.STRING);
            orientClass.createIndex("id", OClass.INDEX_TYPE.UNIQUE, "id");
        }
       // now create the OVertex/OEdge/OElement
       OVertex vertex = db.newVertex("className");
       // add properties to your document
       vertex.setProperty("id", id);
       ...
// release the connection back to the pool
} finally {
        orient.close();
    }

Я еще не нашел этого в документе, так что, возможно, это кому-то поможет.

...