Can you try to verify the behavior in 2.0.3 or 2.1.1  ?

On Fri, Jun 6, 2014 at 8:12 PM, Aru Sahni <[email protected]> wrote:

> 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.
>

-- 
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