Elastic Search for Cardinality List values with meta-properties

51 Views Asked by At

This is a general question about any support or possibility of having Elastic Search index on the vertex property declared with schema Cardinality.LIST and having these values on the list indexed also by their corresponding meta-data.

Is that possible? Is there any hook we can use to have that arrangement? Are there any plans to do that in the near future?

As for JanusGraph 1.0, that option for ES seams to be not available, and index returns all vertices having any matching value on the list, without any extra filtering for meta-values. With example like:

g.V(1234).properties('name').valueMap()  
==>[date:2014,creator:stephen]  
==>[date:2015,creator:oleksandr]

we need to search only for vertices having "name", that were created in the past, with Gremlin examples like: g.V().hasLabel("My_VERTEX").has("name","abcabc").where(__.properties("name").has("date",P.gte, 2015).has("creator", P.eq, "oleksandr" ))

and have some way to define ElasticSearch index for these properties, and their meta-properties.

We tried to utilize Vertex-Centric indexes for it, it helps,... but we are still facing thousands of vertices to be filtered out from supernodes, by their corresponding meta-properties, where each one requires to get meta-data from database for comparison, and all that is just too slow, in minutes.

1

There are 1 best solutions below

0
On

You brought up a great question. Unfortunately, mixed indexes don't have functionality of indexing meta properties. However, I don't see any reason why it can't be implemented.

I'm not aware of anyone working in this direction right now, but you should feel free to open a feature request in GitHub and link this StackOverflow thread there.

I assume this might also need a discussion in the development mailing list to agree on how exactly should meta properties be indexed together with ordinary properties on a mixed index backend side.