fix pattern matching tests

This commit is contained in:
phernandez
2025-01-15 17:09:45 -06:00
parent a509ef1e2a
commit cdd6ec7fa8
4 changed files with 11 additions and 15 deletions
@@ -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")
+2 -2
View File
@@ -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
+3 -7
View File
@@ -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(