Hi!
I'm developing a C# MVC application which relies heavily on Neo4j. The objects varies alot in terms of available properties and I'd like to be able to utilize Elasticsearch for powerful free-text searches. I think I've read about an integration which handled CRUD in Elasticsearch "automagically" from neo4j but it seems to have been abandoned.
The free-text search available in neo4j assumes that we create explicit indices on explicit properties which, in my case, is somewhat counterproductive although very powerful.
Is there aa solution out there which offers, at least roughly, what I'm trying to accomplish here?
Cheers
Hi Peter,
I think you are right, there used to be an index provider (plugin) for elastic. I think it was abandoned because it is kind of bad for the database to wait for an external api (transactions should be fast).
If you have lots of "dynamic properties" maybe you can still leverage the fulltext index (and other indexes in neo4j) if you make some abstraction in your graph model.
Like instead of:
(p:Person { id:1, prop_2: "a", ... prop_n = "z"})
You do:
(p:Person { id:1})-[:HAS_ADDITIONAL_PROPERTY]->(ap:Property{key:"prop_2", value:"a"})
Especially we use this pattern when you have multiple varying identifiers for an Entity. I guess it all comes down to what the domain/domain questions are, and if you need a document representation or a graph representation for it (or both).
Do you mind if I send you an email proposing a time when we can discuss this in person/look at some of the details?