diff --git a/graphiti_core/driver/driver.py b/graphiti_core/driver/driver.py index 7be689b4..9c8f1642 100644 --- a/graphiti_core/driver/driver.py +++ b/graphiti_core/driver/driver.py @@ -46,7 +46,9 @@ class GraphDriverSession(ABC): class GraphDriver(ABC): provider: str - fulltext_syntax: str = '' # Neo4j (default) syntax does not require a prefix for fulltext queries + fulltext_syntax: str = ( + '' # Neo4j (default) syntax does not require a prefix for fulltext queries + ) @abstractmethod def execute_query(self, cypher_query_: str, **kwargs: Any) -> Coroutine: diff --git a/graphiti_core/driver/falkordb_driver.py b/graphiti_core/driver/falkordb_driver.py index ed7431e9..ac71c402 100644 --- a/graphiti_core/driver/falkordb_driver.py +++ b/graphiti_core/driver/falkordb_driver.py @@ -98,7 +98,6 @@ class FalkorDriver(GraphDriver): self._database = database self.fulltext_syntax = '@' # FalkorDB uses a redisearch-like syntax for fulltext queries see https://redis.io/docs/latest/develop/ai/search-and-query/query/full-text/ - def _get_graph(self, graph_name: str | None) -> FalkorGraph: # FalkorDB requires a non-None database name for multi-tenant graphs; the default is "default_db" diff --git a/graphiti_core/helpers.py b/graphiti_core/helpers.py index 855b364d..ae311a08 100644 --- a/graphiti_core/helpers.py +++ b/graphiti_core/helpers.py @@ -51,6 +51,7 @@ def parse_db_date(neo_date: neo4j_time.DateTime | str | None) -> datetime | None else None ) + def get_default_group_id(db_type: str) -> str: """ This function differentiates the default group id based on the database type. @@ -61,6 +62,7 @@ def get_default_group_id(db_type: str) -> str: else: return '' + def lucene_sanitize(query: str) -> str: # Escape special characters from a query before passing into Lucene # + - && || ! ( ) { } [ ] ^ " ~ * ? : \ / diff --git a/graphiti_core/search/search_utils.py b/graphiti_core/search/search_utils.py index f5eab407..59feb698 100644 --- a/graphiti_core/search/search_utils.py +++ b/graphiti_core/search/search_utils.py @@ -62,7 +62,9 @@ MAX_QUERY_LENGTH = 32 def fulltext_query(query: str, group_ids: list[str] | None = None, fulltext_syntax: str = ''): group_ids_filter_list = ( - [fulltext_syntax + f"group_id:'{lucene_sanitize(g)}'" for g in group_ids] if group_ids is not None else [] + [fulltext_syntax + f"group_id:'{lucene_sanitize(g)}'" for g in group_ids] + if group_ids is not None + else [] ) group_ids_filter = '' for f in group_ids_filter_list: