mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
fix pattern matching tests
This commit is contained in:
@@ -71,8 +71,8 @@ class SearchRepository:
|
||||
conditions.append("(title MATCH :text OR content MATCH :text)")
|
||||
|
||||
# Handle pattern search on permalink using FTS
|
||||
if query.permalink_pattern:
|
||||
fts_pattern = self._convert_pattern_to_fts(query.permalink_pattern)
|
||||
if query.permalink:
|
||||
fts_pattern = self._convert_pattern_to_fts(query.permalink)
|
||||
if fts_pattern:
|
||||
params["permalink_pattern"] = fts_pattern
|
||||
conditions.append("permalink MATCH :permalink_pattern")
|
||||
|
||||
@@ -15,8 +15,8 @@ class SearchItemType(str, Enum):
|
||||
|
||||
class SearchQuery(BaseModel):
|
||||
"""Search query parameters."""
|
||||
text: Optional[str] = None # Made optional to allow permalink-only search
|
||||
permalink_pattern: Optional[str] = None # Added for pattern matching
|
||||
text: Optional[str] = None
|
||||
permalink: Optional[str] = None
|
||||
types: Optional[List[SearchItemType]] = None
|
||||
entity_types: Optional[List[str]] = None
|
||||
after_date: Optional[Union[datetime, str]] = None
|
||||
|
||||
@@ -66,12 +66,9 @@ class ContextService:
|
||||
async def find_by_pattern(self, pattern: str):
|
||||
"""Find entities matching a glob pattern."""
|
||||
# Convert glob pattern to SQL LIKE pattern
|
||||
sql_pattern = pattern.replace('*', '%')
|
||||
|
||||
# Use search with permalink pattern
|
||||
query = SearchQuery(
|
||||
permalink_pattern=sql_pattern,
|
||||
types=[SearchItemType.ENTITY] # Only match entities
|
||||
permalink=pattern,
|
||||
)
|
||||
|
||||
return await self.search_repository.search(query)
|
||||
@@ -80,14 +77,13 @@ class ContextService:
|
||||
"""Find entities using fuzzy text search."""
|
||||
query = SearchQuery(
|
||||
text=search_terms,
|
||||
types=[SearchItemType.ENTITY] # Only match entities
|
||||
)
|
||||
return await self.search_repository.search(query)
|
||||
|
||||
async def find_related(self, permalink: str):
|
||||
"""Find entities related to a given permalink."""
|
||||
# First find the target entity
|
||||
query = SearchQuery(permalink_pattern=permalink)
|
||||
query = SearchQuery(permalink=permalink)
|
||||
results = await self.search_repository.search(query)
|
||||
|
||||
if not results:
|
||||
@@ -102,7 +98,7 @@ class ContextService:
|
||||
|
||||
async def find_by_permalink(self, permalink: str):
|
||||
"""Find an entity by exact permalink."""
|
||||
query = SearchQuery(permalink_pattern=permalink)
|
||||
query = SearchQuery(permalink=permalink)
|
||||
return await self.search_repository.search(query)
|
||||
|
||||
async def find_connected(
|
||||
|
||||
Reference in New Issue
Block a user