Skip to content

[Feature Request]: Incremental multi-strategy sorted full-text indexed search. #1310

@fritty

Description

@fritty

Checklist

  • I am using an up-to-date version.
  • I have read the documentation.
  • I have searched existing issues.

Description

Make an option (or set of toggles) for real-time search (as you type) with multiple strategies all at once, with results ordered by relevance: tags > filenames > text file contents, with full word > prefix > substring. All these strategies applied separately to each string separated by spaces.
Basically the way it's implemented in Obsidian.

Use case: I'm DMing in D&D, and whenever I need a specific file (music, image, note etc) I need it FAST, so I'd like to just start typing the first thing that comes to mind associated with it and see it right away. Even having to press Enter can be a deal breaker, because I'm fully concentrated on other things at that moment.

If there are no plans for such option, who should I contact before making my own solution? I might come back to this someday in the future.

Solution

As you type in the search bar, the results should appear right away, sorted by relevance.
For example, I'm typing the word 'eels', and currently typed in: 'eel'
Results presented:

  • for the full word 'eel'. Sorted by (defined) relevance: first with that tag, then with that word in filename, then with that word anywhere in text file.
  • then for the words with 'eel' prefix, such as 'eels'. Same sorting.
  • lastly with 'eel' as a part of the word, such as 'feel', 'feelings'.
Image

Technically I think it is achievable with some available solutions such as Whoosh or full-text-sparse-engine

Alternatives

If searching through everything at once is too much for now, just adding incremental search would be very helpful. Though it probably won't be quite enough for my use case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions