Neo 4 j全文インデックスの使用
6105 ワード
一、紹介
このブログはNeo 4 j 3.5バージョンについて、オリジナルの内容は公式ドキュメントを参照してください.https://neo4j.com/docs/cypher-manual/3.5/schema/index/
Neo 4 jの全文インデックスはLuceneを採用し,neo 4 jにおけるstringタイプの属性に全文インデックスを確立できる.
Neo 4 jに埋め込まれたインデックスと比較して、Luceneインデックスを使用すると、次のような利点があります.
二、使用
1.一般的な操作はneo 4 jの内生procedureを用いて全文インデックスを管理する.最も一般的なprocedureは以下に示す.
機能
プロセス
説明
全文ノードインデックスの作成
db.index.fulltext.createNodeIndex
パラメータには、1.グローバル一意のインデックス名(タイプはstring).2.labels(タイプはstring list);3.properties(タイプはstring list);4.config(オプションで、keyとvalueがstringタイプのmap)です.configでは、インデックスを作成するAnalyzer(analyzerプロパティ)を指定したり、最終的なコンシステンシモード(eventually_consistent)を使用するかどうかを指定したりできます.
全文関係インデックスの作成
db.index.fulltext.createRelationshipIndex
パラメータには、1.グローバル一意のインデックス名(タイプはstring).2.relationship types(タイプはstring list);3.properties(タイプはstring list);4.config(オプションで、keyとvalueがstringタイプのmap)です.configでは、インデックスを作成するAnalyzer(analyzerプロパティ)を指定したり、最終的なコンシステンシモード(eventually_consistent)を使用するかどうかを指定したりできます.
全文ノードインデックスの使用
db.index.fulltext.queryNodes
パラメータ:1.インデックス名2.luceneクエリ文の戻り:1.一致するノード2.luceneスコアはscore降順で返されます
全文関係インデックスの使用
db.index.fulltext.queryRelationships
パラメータ:1.インデックス名2.luceneクエリ文の戻り:1.一致する関係2.luceneスコアはscore降順で返されます
索引の削除
db.index.fulltext.drop
パラメータ:1.索引名
最終コンシステンシインデックス
db.index.fulltext.awaitEventuallyConsistentIndexRefresh
最終コンシステンシ全文インデックスで、最新のコミットを待つトランザクションが有効になります.
使用可能なAnalyzerのリスト
db.index.fulltext.listAvailableAnalyzers
全文インデックスで使用可能なすべてのAnalyzerをリストします.luceneにはすでに多くの言語のanalyzerが内蔵されている.
2.全文インデックスの作成と構成たとえば、LabelがMovieとBookのノードにインデックスを作成する場合、インデックスのフィールドにはtitleとdescriptionが含まれます.次のcypher文を使用します.
CALL db.index.fulltext.createNodeIndex("titlesAndDescriptions",["Movie", "Book"],["title", "description"])
上記のインデックスを使用して、タイトルまたは説明に「matrix」が含まれているノードを検索するには、次のcypher文を呼び出します.
CALL db.index.fulltext.queryNodes("titlesAndDescriptions", "matrix") YIELD node, score
RETURN node.title, node.description, score
リレーショナルインデックスの作成、オプションパラメータconfigの使用.
CALL db.index.fulltext.createRelationshipIndex("taggedByRelationshipIndex",["TAGGED_AS"],["taggedByUser"], { analyzer: "url_or_email", eventually_consistent: "true" })
3.全文索引による照会
CALL db.index.fulltext.queryNodes("titlesAndDescriptions", "Full Metal Jacket") YIELD node, score
RETURN node.title, score
文法はLuceneの全文で検索できます.たとえば、完全に一致する必要がある場合は、二重引用符を付けます.
CALL db.index.fulltext.queryNodes("titlesAndDescriptions", "\"Full Metal Jacket\"") YIELD node, score
RETURN node.title, score
論理オペレータ(AND ORなど)を使用できます.
CALL db.index.fulltext.queryNodes("titlesAndDescriptions", 'full AND metal') YIELD node, score
RETURN node.title, score
指定したプロパティをクエリーすることもできます.
CALL db.index.fulltext.queryNodes("titlesAndDescriptions", 'description:"surreal adventure"') YIELD node, score
RETURN node.title, node.description, score
4.全文索引の削除
CALL db.index.fulltext.drop("taggedByRelationshipIndex")