2.0.1

~Aru


On Fri, Jun 6, 2014 at 2:09 PM, Michael Hunger <
[email protected]> wrote:

> Which version are you using?
>
>
> On Fri, Jun 6, 2014 at 8:00 PM, Aru Sahni <[email protected]> wrote:
>
>> Hi all,
>>
>> My simplified data model is as follows:
>>
>> Entity {
>>    source}
>> Person {
>>    first_name}
>>
>> And I have the following indexes:
>>
>> ON :Entity(source)     ONLINE
>> ON :Person(first_name) ONLINE
>>
>> I've got a handful of nodes on my graph.  Each node has two labels,
>> Entity and Person.  I want to query for all people with a given source that
>> have a certain first name.  The naive way of doing this is:
>>
>> MATCH (n:Person)
>> WHERE n.first_name = 'John' AND n.source = "form1"
>> RETURN n;
>>
>> The profiler shows:
>>
>> Filter(pred="Property(n,source(10)) == Literal(form1)", _rows=2, _db_hits=2)
>> SchemaIndex(identifier="n", _db_hits=0, _rows=2, label="Person",
>>
>>
>>
>>
>>     query="Literal(John)", identifiers=["n"], property="first_name",
>>
>>
>>
>>
>>     producer="SchemaIndex")
>>
>> So, obviously it's not using the Entity(source) index.  Time to declare
>> it.
>>
>> MATCH (n:Entity:Person)
>> USING INDEX n:Person(first_name)
>> USING INDEX n:Entity(source)
>> WHERE n.first_name = "John" AND n.source = "form1"
>> RETURN n;
>>
>> The profiler shows that it's hitting both indexes:
>>
>> SchemaIndex(identifier="n", _db_hits=0, _rows=8, label="Entity",
>>
>>
>>
>>
>>     query="Literal(form1)", identifiers=["n"], property="source",
>>
>>
>>
>>
>>     producer="SchemaIndex")
>> SchemaIndex(identifier="n", _db_hits=0, _rows=2, label="Person",
>>
>>
>>
>>
>>     query="Literal(John)", identifiers=["n"], property="first_name",
>>
>>
>>
>>
>>     producer="SchemaIndex")
>>
>> However, the returned rows appear to show records with first_name=John OR
>> source=form1.  There are duplicate nodes returned as well, but nothing
>> DISTINCT can't fix.
>>
>> Switching the order of the USING statements still duplicates result
>> nodes, but they seem to reflect the proper intersection.
>>
>> Any insight into this behavior (and guidance) would be greatly
>> appreciated.
>>
>> Regards,
>> ~Aru
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Neo4j" 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
> "Neo4j" 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 
"Neo4j" 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.

Reply via email to