Yeah this method is kind of buggy. I also mentioned that when I started
with OrientDB.
Luca told me to use the getVertices instead. And with that all is fine for
me.
Am Mittwoch, 3. Dezember 2014 11:37:38 UTC+1 schrieb syshex:
>
> Executing my Test class on a new DB with the following block at the end:
>
> Iterator<Vertex> it = graph2.getVertices("Government.itemid", 45).iterator
> ();
> while( it.hasNext() ) {
> Vertex temp = it.next();
> System.out.println("Vertex : " + temp.toString());
> }
>
>
> Gives :
>
>
> Vertex : v(Government)[#12:1]
> Vertex : v(Government)[#12:0]
>
> Which are the two Government Vertices creates before we get to that loop.
>
> So from what I can gather, the index is being created correctly, and stuff
> is being stored in it.
> What I think is happening is that getVertexByKey(final String iKey,
> Object iValue) is not retrieving the result. Maybe this method, which
> should return only one Vertex, does not work in the kind of index I am
> creating , and maybe will only work with an Index with a UNIQUE constraint
> ? Also the method documentation does not state what happens if more than
> one Vertex is found (returns only the first Vertex? return null?)
>
>
>
> On Wednesday, December 3, 2014 7:49:07 AM UTC, Curtis Mosters wrote:
>>
>> What happens if you do:
>>
>> graph2.getVertices("Government.itemid", 45)
>>
>> If that does not help, have a look on my Real case import code:
>> http://www.kwoxer.de/2014/11/12/daten-import-via-java-orientdb-real-beispiel-tutorial/
>> Maybe there is something that helps.
>>
>> You could also try to change the way you create the index. Maybe instead
>> of the current way do it with a method and a non-graph database object
>> (just look at the example code):
>>
>> void createIndex(String className, INDEX_TYPE indexType, String
>> propertyName, String indexName) {
>> db.getMetadata().getSchema().getClass(className).createIndex(
>> propertyName, indexType, indexName);
>> }
>>
>>
>>
>> Am Mittwoch, 3. Dezember 2014 00:44:37 UTC+1 schrieb syshex:
>>>
>>> It is a clean install, running only on my laptop, started with :
>>>
>>> rui@jupiter ~/Software/orientdb-community-2.0-M3/bin $ ./orientdb.sh
>>> start
>>> Starting OrientDB server daemon...
>>> Password:
>>>
>>> I have made no configuration changes what so ever, with the exception of
>>> editing orientdb.sh in this way :
>>>
>>> ORIENTDB_DIR="/home/rui/Software/orientdb-community-2.0-M3/"
>>> ORIENTDB_USER="rui"
>>>
>>> Also on the first post of this thread I posted a java source file the
>>> reproduces what I have described.
>>> Hope this helps.
>>>
>>> Thanks
>>> Rui
>>>
>>>
>>> On Tuesday, December 2, 2014 11:17:36 PM UTC, Lvc@ wrote:
>>>>
>>>> Are you running distributed?
>>>>
>>>> Lvc@
>>>>
>>>>
>>>> On 2 December 2014 at 22:00, syshex <[email protected]> wrote:
>>>>
>>>>> There you go
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, December 2, 2014 8:58:34 PM UTC, syshex wrote:
>>>>>>
>>>>>> sure, how do I do that ?
>>>>>>
>>>>>> On Tuesday, December 2, 2014 8:54:47 PM UTC, Curtis Mosters wrote:
>>>>>>>
>>>>>>> Hi could you please show the indices in the Studio? Thanks
>>>>>>>
>>>>>>> Am Dienstag, 2. Dezember 2014 15:04:29 UTC+1 schrieb syshex:
>>>>>>>>
>>>>>>>> Hi !
>>>>>>>>
>>>>>>>> I create the following Vertex type and index :
>>>>>>>>
>>>>>>>> OrientGraphNoTx graph = factory.getNoTx();
>>>>>>>> *graph*
>>>>>>>>
>>>>>>>> *.createVertexType("Government");graph.createKeyIndex("itemid",
>>>>>>>> Vertex.class, new Parameter<>("class",
>>>>>>>> "Government"));graph.createKeyIndex("nif", Vertex.class, new
>>>>>>>> Parameter<>("class", "Government"));*
>>>>>>>> graph.commit(); // Just Because ...
>>>>>>>>
>>>>>>>>
>>>>>>>> Then I go on to create a Vertex of that type :
>>>>>>>>
>>>>>>>> OrientGraph graph = factory.getTx();
>>>>>>>> Vertex node = graph.addVertex("class:Government");
>>>>>>>> *node**.setProperty("itemid", 45);*
>>>>>>>> node.setProperty("nif", "1234567890");
>>>>>>>> node.setProperty("description", "Somewhere");
>>>>>>>> graph.commit() ;
>>>>>>>>
>>>>>>>> I then search for :
>>>>>>>>
>>>>>>>> Vertex exists = graph2.getVertexByKey("Government.itemid", 45);
>>>>>>>>
>>>>>>>> And exists == Null ; therefore not found.
>>>>>>>>
>>>>>>>> I even tried defining the properties of the Gorvernment vertex
>>>>>>>> type, like this :
>>>>>>>>
>>>>>>>> OrientGraphNoTx graph = factory.getNoTx();
>>>>>>>> OrientVertexType vertexType = graph.createVertexType("Government");
>>>>>>>> *vertexType**.createProperty("itemid", OType.LONG);*
>>>>>>>> *vertexType**.createProperty("nif", OType.STRING);*
>>>>>>>> graph.createKeyIndex("itemid", Vertex.class, new Parameter<>(
>>>>>>>> "class", "Government"));
>>>>>>>> graph.createKeyIndex("nif", Vertex.class, new Parameter<>("class",
>>>>>>>> "Government"));
>>>>>>>> graph.commit();
>>>>>>>>
>>>>>>>> and do the same:
>>>>>>>>
>>>>>>>> OrientGraph graph2 = factory.getTx();
>>>>>>>> Vertex node = graph2.addVertex("class:Government");
>>>>>>>> node.setProperty("itemid", 45);
>>>>>>>> node.setProperty("nif", "1234567890");
>>>>>>>> node.setProperty("description", "Somewhere");
>>>>>>>> graph2.commit() ;
>>>>>>>>
>>>>>>>> graph2 = factory.getTx();
>>>>>>>> Vertex exists = graph2.getVertexByKey("Government.itemid",
>>>>>>>> 45);
>>>>>>>>
>>>>>>>>
>>>>>>>> if (exists == null) {
>>>>>>>> System.out.println("Does not Exist");
>>>>>>>> node = graph2.addVertex("class:Government");
>>>>>>>> node.setProperty("itemid", 45);
>>>>>>>> node.setProperty("nif", "1234567890");
>>>>>>>> node.setProperty("description", "Somewhere");
>>>>>>>> graph2.commit() ;
>>>>>>>> } else {
>>>>>>>> System.out.println("Exist already");
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> I always end up with two vertex entries on the DB , as can be see
>>>>>>>> from the attached Image,
>>>>>>>>
>>>>>>>> I also attach a test class for this problem.
>>>>>>>>
>>>>>>>> I'm running 2.0-M3 on linux and the dependencies for the TestRun
>>>>>>>> class attached are :
>>>>>>>>
>>>>>>>> "com.orientechnologies" % "orientdb-client" % "2.0-M3",
>>>>>>>> "com.orientechnologies" % "orientdb-enterprise" % "2.0-M3",
>>>>>>>> "com.orientechnologies" % "orient-commons" % "2.0-M1",
>>>>>>>> "com.orientechnologies" % "orientdb-core" % "2.0-M3",
>>>>>>>> "com.orientechnologies" % "orientdb-graphdb" % "2.0-M3",
>>>>>>>> "com.tinkerpop.blueprints" % "blueprints-core" % "2.6.0",
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "OrientDB" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.