The second query should be fine, if you don't have millions of rels of 
"hasSource" between thing and source. ?

What is the someData property in your case?  a boolean, numeric value, string ?

Good point about the case-insensitive option for schema indexes

Cheers, Michael

> Am 26.01.2015 um 15:04 schrieb [email protected]:
> 
> Michael,
> 
> We may start at Thing or Source (or some other node), but would like to 
> refine by some data on hasSource in the WHERE clause (and take advantage of 
> an index).  An example query could be:
> 
> MATCH (thing:THING)-[rel:hasSource]->(source:SOURCE), 
> (thing)-[:hasFeature]->(feature:FEATURE)
> WHERE feature.name IN ['someFeature', 'someFeature2'] AND rel:someData = 
> "data"
> RETURN thing
> 
> or it could be re-written as:
> 
> MATCH (thing:THING)-[:hasFeature]->(feature:FEATURE)
> WHERE feature.name IN ['someFeature', 'someFeature2']
> MATCH (thing)-[rel:hasSource]->(source:SOURCE)
> WHERE rel:someData = "data"
> RETURN thing
> 
> 
> Hope it helps. 
> 
> Thanks,
> Brandon
> 
> 
> 
> On Saturday, January 24, 2015 at 5:29:43 PM UTC-6, Michael Hunger wrote:
> Brandon,
> 
> what kind of query use-case would you want to support? 
> Would you still start at a Thing or Source and then only want to access as 
> subset of the relationships?
> Or really lookup :hasSource relationships independent of Source or Thing?
> 
> This would help us understand the scope of your question.
> 
> Cheers, Michael
> 
>> Am 24.01.2015 um 19:20 schrieb bra...@ <>wayblazer.com 
>> <http://wayblazer.com/>:
>> 
>> Hello,
>> 
>> Are edge schema indexes in the works for a future version?  The main reason 
>> I ask is for modeling data. One use case example is a "thing" can have many 
>> "sources" and we really only want unique "things" in the graph.
>> 
>> (:THING)-[:hasSource]->(:SOURCE)
>> 
>> In this scenario, the bulk of the data lives on the hasSource edge, as the 
>> "thing" has multiple sources with slightly different data from each source.  
>> The problem is currently you cannot index any of this data as it's an edge.
>> 
>> The other option is to have something like this:
>> 
>> (:THING)-[:hasSourceData]->(:THINGDATA)-[:hasSource]->(:SOURCE)
>> 
>> Then we can index "thing data" properties, but it introduces an extra node 
>> and relationship.
>> 
>> Just seeing what future schema index options there are planned for Neo4j.
>> 
>> Unrelated, I would love to be able to specify a "case insensitive" option 
>> for a schema index.
>> 
>> Thanks,
>> Brandon
>> 
>> -- 
>> 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 neo4j+un...@ <>googlegroups.com <http://googlegroups.com/>.
>> For more options, visit https://groups.google.com/d/optout 
>> <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] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <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