Searching through your graph database

In InterActor there are two ways to run a search on your Neo4j graph store:

  • using the Neo4j panel to execute regular Cypher statements
  • using the Elastic panel to execute an Elastic Search (Enterprise Edition only).

Neo4j panel

The Neo4j panel is usually located on the left panel sidebar-left of InterActor. Here you can enter and execute Cypher statements against your Neo4j graph store. A default Cypher statement is provided that can be adapted or replaced by something else.

Searching for nodes is done here as you would do in any other situation where Cypher is used to find and filter nodes and relations.

Click on the [Execute] button in the Cypher panel once the cypher statement has been entered. The statement is now executed and the result is displayed depending on the selection made in the Output dropdown. The results are displayed in a Networkview when Networkis selected while they are presented in tabular format when Table is selected.

When nodes are presented in tabular format the node label, its id and nested properties are listed. However, nothing (!) is shown when output is set to Network while the Cypher statement only returns properties (but no nodes or relationships).

Additionally, when sending only nodes to a NetworkView, the NetworkView will -by default- automatically show the relationships between those nodes. Contrarily, when sending only relationships to a NetworkView, it will display the start and end nodes for these relationships.

Elastic panel

(Enterprise Edition only)

The Elastic panel uses Elastic Search (https://www.elastic.co/guide/en/elasticsearch/reference/5.5/query-dsl-query-string-query.html) syntax to search through the Neo4j graph store.

The following syntax can be used:

Searching any text string:

any text

Note: the search is case insensitive and multi word strings will not be matched exactly.

[@Remi: CAN WE MATCH 100% ON MULTI WORD STRINGS? ]

Searching by id: id:<#>

id:1234

Note: this returns nodes based on both the inherent Neo4j node id as well as properties named id. It does not return relationships based on id.

Searching by label: labels:<name of label>

labels:User

Searching on node properties: properties.<property name>

properties.age:20

Using logical operators: AND and OR

labels:user AND (properties.age:20)
properties.name:cappucino OR properties.name:"latte machiato " 

Notes:

  • search syntax and strings are not case sensitive, except for the Logical Operators that should be written in UPPERCASE as AND or OR
  • the colon : is used as the equal sign
  • multi-word string values should be enclosed in "double quotes"
  • Elastic Search only returns the first 50 nodes that meet the selection criteria.
  • The search is triggered by pressing the Enter key on your keyboard