15
15
from typing import Any
16
16
from unittest .mock import patch
17
17
18
+ import pytest
18
19
from neo4j_graphrag .neo4j_queries import get_query_tail , get_search_query
19
- from neo4j_graphrag .types import SearchType
20
+ from neo4j_graphrag .types import IndexType , SearchType
20
21
21
22
22
23
def test_vector_search_basic () -> None :
@@ -31,6 +32,34 @@ def test_vector_search_basic() -> None:
31
32
assert params == {}
32
33
33
34
35
+ def test_rel_vector_search_basic () -> None :
36
+ expected = (
37
+ "CALL db.index.vector.queryRelationships($vector_index_name, $top_k * $effective_search_ratio, $query_vector) "
38
+ "YIELD relationship, score "
39
+ "WITH relationship, score LIMIT $top_k "
40
+ "RETURN relationship { .*, `None`: null } AS relationship, elementId(relationship) AS elementId, score"
41
+ )
42
+ result , params = get_search_query (SearchType .VECTOR , IndexType .RELATIONSHIP )
43
+ assert result .strip () == expected .strip ()
44
+ assert params == {}
45
+
46
+
47
+ def test_rel_vector_search_filters_err () -> None :
48
+ with pytest .raises (Exception ) as exc_info :
49
+ get_search_query (
50
+ SearchType .VECTOR , IndexType .RELATIONSHIP , filters = {"filter" : None }
51
+ )
52
+ assert str (exc_info .value ) == "Filters are not supported for relationship indexes"
53
+
54
+
55
+ def test_rel_vector_search_hybrid_err () -> None :
56
+ with pytest .raises (Exception ) as exc_info :
57
+ get_search_query (SearchType .HYBRID , IndexType .RELATIONSHIP )
58
+ assert (
59
+ str (exc_info .value ) == "Hybrid search is not supported for relationship indexes"
60
+ )
61
+
62
+
34
63
def test_hybrid_search_basic () -> None :
35
64
expected = (
36
65
"CALL { "
0 commit comments