5

Luceneを使用してグラフデータを操作する方法はありますか?

1人のユーザーが多くのluceneドキュメントと関係を持っている(ドキュメント接続)1人のユーザーが他のユーザーと関係を持っている(ユーザー接続[グラフ])

ユーザーがインデックスを検索すると、関係のあるドキュメントが返されます。これは単純で簡単です。

ユーザー接続が関係しているドキュメントを取り戻す方法は何でしょうか。

user_idフィールドで、ドキュメントと関係のあるすべてのユーザーを使用して各ドキュメントにインデックスを付けるのがアプローチです。ただし、検索クエリサイズを実行するユーザーにユーザー接続を提供するインデックスをクエリする場合、予測できません。数千のユーザー接続を持つユーザーについて考えてみてください。これはスケーリングされません。

グラフDBに格納されているユーザー接続とユーザードキュメントが検索対象のドキュメントを簡単に提供できるのとほぼ同じですが、Luceneにそれを伝達する効果的な方法は、特定のクエリに対してそれらのドキュメントに対してのみ検索できるようにすることです。結果が返される場合、これにより、少なくとも1つ以上のユーザー接続が結果で返されるドキュメントと関係があることが保証されます。

4

3 に答える 3

3

現在、solrやluceneの上にあるグラフテクノロジーはないと思います。

あなたはおそらくこれらの2つのキャンプのどちらかを見るのが最も良いでしょう:

  • SpringDataを使用したNeo4j(単一インスタンスの場合は無料)

また

  • これらのテクノロジーの1つでのTinkerpopブループリント(java / scalaを使用していない場合はおそらくrexter):
  • Hadoopを使用したCassandra上のTitan(マルチマスター、障害点なし)
  • OrientDb
  • Neo4j

これらのデータベースはグラフデータベースです。Tinkerpopブループリントは、特定の実装を抽象化できる標準です。Springdataは現在、グラフテクノロジーのneo4jのみをサポートしています。

クラスター化する場合、Neo4jには費用がかかります(無料ライセンスは単一インスタンスのみです)。

ここでグラフを使用してsolr/luceneに関するディスカッションを読むことができます。 http://lucene.472066.n3.nabble.com/indexing-directed-graph-td2949556.html

neo4jは全文検索をサポートしていることに注意してください。

于 2013-02-21T02:42:12.730 に答える
0

グラフデータベースは、solr6.0以降でサポートされています。solrがインストールされていない場合は、代わりにグラフデータベースを使用する方がおそらく良いでしょうが、少なくとも今は選択肢があります。私はこれを見つけました、ドキュメントはまだまばらです:

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

于 2018-01-25T10:19:56.533 に答える
0

Apache Jenaは、いくつかのグラフ機能(SPARQL、RDF)を備えており、Luceneを利用しているため、ここで関連する可能性があります。

ApacheJenaFusekiおよびJenaTextを参照してください。

于 2020-02-19T23:58:00.997 に答える