Skip to content

[Feature]: Enhanced Search Result Sorting Options #139

@Teingi

Description

@Teingi

Describe your use case

Users need flexible ways to sort search results based on different criteria. Currently, PowerMem returns results with relevance scores, but users might want to:

  • Sort by recency (newest first)
  • Sort by importance score
  • Sort by access frequency
  • Sort by Ebbinghaus retention score
  • Combine multiple sorting criteria (e.g., relevance first, then by date)

Describe the solution you'd like

Extend the search method to support multiple sorting options:

  1. Sorting modes:

    • relevance (default, current behavior)
    • date_asc / date_desc (by creation/update time)
    • importance_asc / importance_desc (by importance score)
    • access_count_desc (by number of times accessed)
    • retention_desc (by Ebbinghaus retention score)
    • custom (user-defined sorting function)
  2. Multi-criteria sorting:

    • Primary and secondary sort keys
    • Example: Sort by relevance, then by date for ties
  3. API enhancement:

    results = memory.search(
        "query",
        user_id="user123",
        sort_by="date_desc",  # or ["relevance", "date_desc"]
        limit=20
    )

The solution should:

  • Maintain backward compatibility (default to relevance sorting)
  • Be efficient (use database-level sorting when possible)
  • Support all existing search features (filters, scopes, etc.)
  • Document sorting behavior clearly

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions