humzakt commented on issue #690:
URL: https://github.com/apache/age/issues/690#issuecomment-1528975732

   Indexing in Apache AGE can help improve the performance of your queries, 
similar to how indexing works in Neo4j. Since Apache AGE is built on top of 
PostgreSQL, you can leverage PostgreSQL's native indexing capabilities to 
create indices on the properties of your vertices.
   
   To speed up your queries, you can create indices on the value property for 
each of the node types (typeTwo to typeSix). Here's how you can create indices 
for each node type:
   
   ```
   CREATE INDEX type_two_value_idx ON ag_vertex(typeTwo) USING btree 
(properties->>'value');
   CREATE INDEX type_three_value_idx ON ag_vertex(typeThree) USING btree 
(properties->>'value');
   CREATE INDEX type_four_value_idx ON ag_vertex(typeFour) USING btree 
(properties->>'value');
   CREATE INDEX type_five_value_idx ON ag_vertex(typeFive) USING btree 
(properties->>'value');
   CREATE INDEX type_six_value_idx ON ag_vertex(typeSix) USING btree 
(properties->>'value');
   ```
   
   These indices will improve the performance of your queries when searching 
for nodes based on the value property.
   
   However, it's worth noting that using a variable-length path pattern with a 
large maximum depth (e.g., [:REL*..100]) can still lead to slow query 
performance, as it requires traversing a significant portion of the graph. If 
possible, try to reduce the maximum depth to a smaller value based on your 
specific use case.
   
   In addition, you can optimize your queries by merging them into a single 
query using the UNION operator, which can help reduce the overall query 
execution time:
   
   ```
   MATCH (:typeTwo{value:"searchingValue"}) - [:REL*..100]- (node:typeOne) 
RETURN node.prop
   UNION
   MATCH (:typeThree{value:"searchingValue2"}) - [:REL*..100]- (node:typeOne) 
RETURN node.prop
   UNION
   MATCH (:typeFour{value:"searchingValue3"}) - [:REL*..100]- (node:typeOne) 
RETURN node.prop
   UNION
   MATCH (:typeFive{value:"searchingValue4"}) - [:REL*..100]- (node:typeOne) 
RETURN node.prop
   UNION
   MATCH (:typeSix{value:"searchingValue5"}) - [:REL*..100]- (node:typeOne) 
RETURN node.prop;
   
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to