NEO4j:検索暗号クエリの最適化

user3359536

ウェブサイトでの検索には、neo4j暗号クエリを使用しています。したがって、クエリの最適化を除いて、長いすべてがうまくいっています。検索結果を取得していますが、サイファークエリに関する経験と完全な知識が不足している可能性があります。

テキストボックスでは、検索文字列がキーアップハンドラーでクエリに送信されます。これは、各文字を入力すると、クエリを実行することを意味します。例えばのように。v次にこのように、スペースに入るまで、それを1つの文字列として扱い、結果がそれに応じて表示されますが、問題は、スペースに入ると文字を書き始め、再び文字列を形成するため、結果が大きく変動します。

例:

クエリ1: MATCH (n:user)<-[:userinteresttag]-(tag) where ANY(m in split(n.username," ") where m STARTS WITH 'vartika' ) RETURN distinct n.username クエリ1の結果

QUERY2: MATCH (n:user)<-[:userinteresttag]-(tag) where ANY(m in split(n.username," ") where m STARTS WITH 'vartika' or m STARTS WITH 'jain') RETURN distinct n.username order by n.username

問題:-区切り文字ではなく完全な文字列で検索を表示しているので、画像で確認できるように、最初の結果として来ると予想されるvartika jainが2に移動しますが、そうではないはずです。

キーアップハンドラーで作業すると、検索結果のvartikajainが最後の位置に移動します。これは不要です。

QUERY2の結果

質問:-それで、結果を最適化する方法はありますか?それにより、グーグル検索で得られる最高の結果を得ることができます。

ニコールホワイト

マッチの数を数えて、それで並べ替える必要があるようです。

MATCH (n:user)
WITH n, size([m in split(n.username, ' ') WHERE m STARTS WITH 'vartika' OR m STARTS WITH 'jain']) AS matches
RETURN n.username
ORDER BY matches DESC

クエリで使用していないため[:userinteresttag]リレーションシップとtagノードを削除しました

ムービーグラフの例:

MATCH (p:Person)
WITH p, size([x IN split(p.name, ' ') WHERE x STARTS WITH 'Tom' OR x STARTS WITH 'Hanks']) AS matches
RETURN p.name, matches
ORDER BY matches DESC
LIMIT 5

╒════════════╤═══════╕
│p.name      │matches│
╞════════════╪═══════╡
│Tom Hanks   │2      │
├────────────┼───────┤
│Tom Cruise  │1      │
├────────────┼───────┤
│Tom Skerritt│1      │
├────────────┼───────┤
│Tom Tykwer  │1      │
├────────────┼───────┤
│Keanu Reeves│0      │
└────────────┴───────┘

ただし、実際には、名前と姓を別々のプロパティに保存し、インデックスを付けて、STARTS WITHそれらのインデックス付きプロパティで使用する必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数のリンクはneo4jの最適化を暗号化します(//ファセット検索?)

分類Dev

Neo4jクエリの最適化

分類Dev

関係の作成を含むneo4jクエリの最適化

分類Dev

複数のマージによるneo4jクエリの最適化

分類Dev

Neo4j: 最適パス検索

分類Dev

neo4j暗号クエリの高速化

分類Dev

Neo4j暗号クエリの結果をPandasDataFrameに

分類Dev

「継承された」用語のNeo4J暗号クエリ

分類Dev

最も一般的な関係のNeo4Jクエリ

分類Dev

neo4jクエリでプロパティを検索する

分類Dev

neo4j cypherクエリは、特定のパスを除くすべての子を検索します

分類Dev

トレーニングからのNeo4j暗号クエリ

分類Dev

アンマネージド拡張機能neo4jの暗号クエリ

分類Dev

Neo4j暗号クエリをorientdb / gremlinに変換する(Javaの場合)

分類Dev

Neo4j、REST API、java-暗号クエリ

分類Dev

Neo4j暗号クエリORDERBYとパラメーター

分類Dev

Neo4jクエリの即興

分類Dev

Neo4J / Cypherクエリの支援

分類Dev

mysqlでの検索クエリの最適化

分類Dev

Neo4j 3.1.2は、暗号の正規表現検索でインデックスを使用しますか?

分類Dev

複数の検索条件に対する検索クエリの最適化

分類Dev

テキストを検索するクエリの最適化

分類Dev

副選択検索クエリの最適化

分類Dev

Neo4jとElasticsearchの全文検索

分類Dev

Neo4jでの全文検索

分類Dev

このNeo4JCypherクエリを最適化する

分類Dev

neo4jの暗号

分類Dev

インデックス付きプロパティの検索のように、Neo4jの暗号クエリでより多くの時間がかかっています

分類Dev

Neo4j 暗号クエリからエッジ リストを返す

Related 関連記事

  1. 1

    複数のリンクはneo4jの最適化を暗号化します(//ファセット検索?)

  2. 2

    Neo4jクエリの最適化

  3. 3

    関係の作成を含むneo4jクエリの最適化

  4. 4

    複数のマージによるneo4jクエリの最適化

  5. 5

    Neo4j: 最適パス検索

  6. 6

    neo4j暗号クエリの高速化

  7. 7

    Neo4j暗号クエリの結果をPandasDataFrameに

  8. 8

    「継承された」用語のNeo4J暗号クエリ

  9. 9

    最も一般的な関係のNeo4Jクエリ

  10. 10

    neo4jクエリでプロパティを検索する

  11. 11

    neo4j cypherクエリは、特定のパスを除くすべての子を検索します

  12. 12

    トレーニングからのNeo4j暗号クエリ

  13. 13

    アンマネージド拡張機能neo4jの暗号クエリ

  14. 14

    Neo4j暗号クエリをorientdb / gremlinに変換する(Javaの場合)

  15. 15

    Neo4j、REST API、java-暗号クエリ

  16. 16

    Neo4j暗号クエリORDERBYとパラメーター

  17. 17

    Neo4jクエリの即興

  18. 18

    Neo4J / Cypherクエリの支援

  19. 19

    mysqlでの検索クエリの最適化

  20. 20

    Neo4j 3.1.2は、暗号の正規表現検索でインデックスを使用しますか?

  21. 21

    複数の検索条件に対する検索クエリの最適化

  22. 22

    テキストを検索するクエリの最適化

  23. 23

    副選択検索クエリの最適化

  24. 24

    Neo4jとElasticsearchの全文検索

  25. 25

    Neo4jでの全文検索

  26. 26

    このNeo4JCypherクエリを最適化する

  27. 27

    neo4jの暗号

  28. 28

    インデックス付きプロパティの検索のように、Neo4jの暗号クエリでより多くの時間がかかっています

  29. 29

    Neo4j 暗号クエリからエッジ リストを返す

ホットタグ

アーカイブ