hoarder-app / hoarder

A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search
https://hoarder.app
GNU Affero General Public License v3.0
2.75k stars 89 forks source link

[Feature Request] Automatic Lists based on tags #65

Open mp-strachan opened 3 months ago

mp-strachan commented 3 months ago

Provide the ability for items to automatically be added to a list based on the items tags.

Eg: List with the name "Vintage Computers" may automatically include items tagged "Commodore 64", "Amiga", "XZ Spectrum".

This creates the ability to make a logical grouping of automatic/AI tags.

As a bonus, the ability to make them fuzzy/filterable... Eg: "tag contains 'Commodore'", or "Tag does not contain 'Windows 10'" to help create better sorting rules.

MikeKMiller commented 3 months ago

This would be very handy. This would allow grouping in larger groups than just those that GPT provides.

kamtschatka commented 1 month ago

We talked a bit in discord about this feature and the plan is to improve the search functionality to allow searching for more than just the text. In the future, the plan is to be able to store those searches, which would basically be the same as your "smart lists". I can also imagine that these stored searches would just be shown in the same place where the lists are shown, they would just be slightly different than a regular list.

I also quite like this feature, so I started implementing a search service that currently allows the following:

It should then also be possible to have pagination work in search.

Ideally there will be a UI for it, but this is unfortunately not something I am capable of doing for all the combinations. However, a much easier approach is to have users write their own queries in an SQL like language, which is then hitting the same search endpoint as the one that should come with a UI.

Queries would look like this: "text = "yamaha-mt07" and tags in ["motorcycle"] and createdDate >= "-5w" and favourite = true order by rank desc, createdDate desc"

One cool additional feature that I failed to grasp for now is searching inside of lists, so you can narrow down search results for certain lists even further. Since lists can have the same name, writing them in a query is not really possible (maybe with the schema "/") or alternatively by providing the ID in the query?

I would really love to hear your feedback, if there is something you would be missing, or if you have other ideas.