Repository navigation
Conversation
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA behalf on myself, e-mail: mina.abkarino@hotmail.com |
SearchOperations declares build_fulltext_query as an override point, but the four fulltext search methods in Neo4jSearchOperations call the module-level _build_neo4j_fulltext_query directly. A subclass that overrides the method — any Bolt-compatible backend reusing this class — is silently bypassed and gets Neo4j's Lucene field-scoped syntax regardless. Route the four call sites through self.build_fulltext_query, passing MAX_QUERY_LENGTH explicitly so the 128-word cap is preserved: the method's own default is 8000, so omitting it would raise the limit 60x. search_utils.py already calls it in this form. No behaviour change for Neo4j — build_fulltext_query delegates to the same function with the same argument.
g33kroid
force-pushed
the
fix/fulltext-query-override-point
branch
from
September 3, 2026 10:34
ed0db89 to
646c9f0
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
SearchOperationsdeclaresbuild_fulltext_queryas an override point, but the four fulltext search methods inNeo4jSearchOperationscall the module-level_build_neo4j_fulltext_querydirectly:So a subclass that overrides the method is silently bypassed. This routes all four through
self.build_fulltext_query.Why it matters
Any Bolt-compatible backend that reuses
Neo4jSearchOperations— ArcadeDB is the case we hit (#1259 / #1310) — inherits Neo4j's Lucene field-scoped syntax no matter what it overrides. The override point exists; it just isn't used. The FalkorDB and Kuzu backends avoid this only by reimplementing the methods wholesale.The
MAX_QUERY_LENGTHdetailMAX_QUERY_LENGTHis passed explicitly rather than relying on the default. The direct calls default toMAX_QUERY_LENGTH(128);build_fulltext_query's own default is 8000. Omitting it would quietly raise the cap 60×, changing which queries short-circuit to''.search_utils.py:94already calls it in this explicit form.Behaviour
No change for Neo4j —
build_fulltext_querydelegates to_build_neo4j_fulltext_querywith the same argument. This only makes the declared extension point work.Verification
pytest tests/utils tests/driver tests/test_edge_db_queries.py tests/test_node_label_security.py— 253 passed, 1 skippedruff checkandruff format --checkclean on the changed file4 lines changed, one file. Not an integration, so no RFC — but it is a prerequisite for the ArcadeDB backend discussed in #1259 to work without duplicating the search operations.