Using Lucene to work with graph data

Is there a way to use Lucene to work with graph data?

Example

One user has relationships with many documents lucene (Document Connections) One user has relationships with other users (User Connections [Graph])

If the user searches for the Index, he returns the documents with which he is associated. It is simple and straightforward.

How can I return documents with which user connections are associated.

Indexing each document to all users who have a relationship with it in the user_id field is an approach. However, when querying an index that provides user connections for a user performing the size of the search query, it is unpredictable. Think of users having 1000 user connections. It will not scale.

This is almost the same as user connections and user documents stored in the DB column can easily provide us with documents to search for, but an efficient way to tell Lucene about it so that it can only search for those documents for a given query. If any results are returned, this ensures that at least one or more user connections are related to documents returned in the results.

+4
source share
2 answers

I do not believe that there is currently any graph technology that sits on top of solr or lucene.

You are probably best off looking at one of these two camps:

  • Neo4j with SpringData (free for one instance)

OR

  • Tinkerpop drawings (possibly rexter if not using java / scala) using one of these technologies:
  • Titan on Kassandra with Hadoop (multimaster, no point of failure)
  • Oriententb
  • Neo4j

These databases are graph databases. Tinkerpop Blueprints is a standard that allows you to abstract from a specific implementation. Springdata currently only supports neo4j graphics technology.

Neo4j costs money if you are a cluster (free license for only one copy).

You can read the discussion about solr / lucene with graphics here. http://lucene.472066.n3.nabble.com/indexing-directed-graph-td2949556.html

Note. neo4j supports full-text search.

+2
source

Graphical databases are supported with solr 6.0; if you don't have solr, it's probably best to use a graph database, but now at least you have a choice. I found this, the documentation is still sparse:

https://solr.pl/en/2016/04/18/solr-6-0-and-graph-traversal-support/

0
source

All Articles