Neo 4 jインデックスノートのSchemaIndexとLegacyIndex

2818 ワード

neo 4 jにはschema indexesとlegacy indexesの2種類が含まれており、両者の理念が異なり、互換性がなく、実際の応用では需要を明確に検索した後、適切なインデックスを採用しなければならない.
schema index vs legacy index
参照neo 4 j index-confusion
  • schema indexとlegacy indexはluceneに基づいて実現される.
  • Neo 4 j 2.0以降のバージョンを使用しており、2.0バージョン以前のlegacy indexのコードをサポートする必要がない場合は、schema indexのみを使用してlegacy indexを回避してください.
  • Neo 4 jの初期バージョンを使用しなければならず、アップグレードできない場合は、いずれにしてもインデックスが1つしか選択できません(legacy index).
  • 全文検索のインデックスが必要な場合は、どのバージョンでもlegacy indexが使用されます.

  • schema index(schema based indexes)
    `Neo4j is a schema-optional graph database. You can use Neo4j without any schema. Optionally you can introduce it in order to gain performance or modeling benefits.This allows a way of working where the schema does not get in your way until you are at a stage where you want to reap the benefits of having one.`
  • Neo 4 j 2.0のリリース以前に、Legacy indexはindexesと呼ばれていた.このインデックスはgraphの外部でLuceneによって実現され,「ノード」と「関係」がキー値ペアで取得されることを可能にする.Neo 4 jが提供するRESTインタフェースから見ると、indexと呼ばれる変数は、通常、Legacy indexesを指す.
  • Legacy indexは全文検索の能力を提供することができる.この機能はschema indexでは提供されていません.これもNeo 4 j 2.0*バージョンがlegacy indexesを保持している理由の一つです.

  • 新規インデックス
    create index on:Node(property)は、指定したlabel propertyのすべてのnodeに対してindexを新規作成し、indexの新規作成に成功するとgraphが更新されるとindexが自動的に更新され、indexはルートディレクトリの/schema/index/luceneディレクトリにデフォルトで格納されます.次のようになります.
    #     
    CREATE INDEX ON :AddressNode( preAddressNodeGUIDs)
    #     
    DROP INDEX ON :AddressNode(_id)

    きおくモード
    schema indexの格納方式は複合インデックス(Compound Index)であり、セグメント情報ファイル、ロックファイル、削除されたファイルのほか、他の一連のインデックスファイルはcfsという接尾辞のファイルを圧縮し、つまりすべてのインデックスファイルが一例のDirectoryとして格納され、インデックスファイルの数を減らし、同時に開くファイルの数を減らすのに役立つ.これにより、より効率的になります.たとえば、クエリが頻繁で、頻繁に更新されない必要がある場合は、このインデックスフォーマットに適しています.
    legacy index
    Neo 4 j Legacy Index構成パラメータ
    パラメータ

    説明
    type
    exact, fulltext
    exactはLucene keyword analyzerを採用するのがデフォルト構成である.fulltextはwhite-space tokenizer in its analyzerを採用する.
    to_lower_case
    true, false
    type=fulltextで有効になり、インデックスとクエリーを新規作成すると自動的にアルファベットの大文字と小文字が変換され、デフォルトは小文字になります
    analyzer
    Analyzerクラスのフルネーム
    カスタムLucene Analyzer、注意:to_lower_Case構成では、クエリーパラメータがデフォルトで小文字に変換されます.カスタムanalyzerインデックスが大文字で書き込まれている場合、クエリの結果は一致しません.
    新規インデックス
    exactとfulltextの2種類に分けられ、両者を組み合わせて使用することができ、relationshipインデックスを新規作成することができ、デフォルトではルートディレクトリのindex/luceneディレクトリに格納されます.fulltextインデックス新規方式リファレンスノートNeo 4 jでカスタム中国語全文インデックスを実現
  • 注意:legacy indexクエリーを使用するにはstart nodeが必要になることが多い.

  • きおくモード
    legacy indexは非複合インデックスを採用し、より柔軟で、いくつかのインデックスファイルに個別にアクセスできます.
    Neo 4 j連合インデックス
    参照先:https://dzone.com/articles/indexing-neo4j-overviewNeo4j結合インデックスはサポートされていません.結合フィールドで実現できます.
    Neo 4 j 3.0では連合インデックスのサポートが開始されましたが、JDK 8にアップグレードする必要があります.https://github.com/neo4j/neo4j/issues/6841