Search By Property

Is it possible to search by properties? Can I search by title, hash, size, creation date, etc?

You can only search by tags and object IDs (/123, doc). The idea is that tags are the only searchable entity but you can put into tags pretty much anything. When you import images their EXIF and paths can be made into tags (doc).

Size, date, etc. cannot be made tags using the native Stagsi interface but you can do this via SQL or scripting (doc). For example, SELECT RowId FROM Objects WHERE Size ... gives you list of IDs that you can then paste into Stagsi and browse the results.

Why have properties then?

It seems like an anti-pattern to have the same information stored in multiple places. For my use case I care about the file name / title. But in order to use it as a searchable query, I have to import the filename as a tag, and then if I change it, I have to change the tag, and the actual title.

For my use case I care about the file name / title. But in order to use it as a searchable query, I have to import the filename as a tag, and then if I change it, I have to change the tag, and the actual title.

If you often search for file names then why use Stagsi at all? Windows Explorer does a great job of organizing and searching traditional file/folder layout. Stagsi can do this but it is certainly not designed for this, nor for tracking dynamically changing files.

It seems like an anti-pattern to have the same information stored in multiple places.

Properties are different on purpose - this is just something shown in the sidebar. You can create custom columns in the Objects table and their values will be displayed in Stagsi. They can’t be hierarchical and they may have other limitations (like reserved symbols in file names).

Stagsi query only deals with tags and this simplifies both the language and the implementation. You can search for a tag’s ~subtree but this is meaningless for file names, sizes, etc. At the same time, tags are structured and you can turn any property into a tag. It makes no sense to make some properties special and some not because different people want different patterns.

In Stagsi’s mindset, paths are remnants of the traditional file/folder layout, not really convenient at scale (100,000s of objects). When importing, make tags from paths and you will be able to search by base file name (name), by folder (path/to/folder) or subfolder (~path/to/folder). Or better, extract properties from your paths (say, photos/*Events/Party, \d\d\d\d-\d\d-\d\dDate/$1/$2/$3, etc.) and organize them into a proper tag tree, discarding file names altogether.

Sometimes filenames contain useful, supplemental information. Searching by title != folder hierarchy.

I’m looking for a system to organize all of my virtual tabletop assets. I don’t care what folder any of them are in (they can and should all be in the same place). I want to tag them with things like “Token” “Map” “Icon” etc. But when searching for all things tagged with Token, I want to be able to see the ones that include the word “Swamp” in them. I want to see “Swamp-Monster.webp” “Swamp-Creature.webp” etc, but not “Swamp-Map.webp” “Swampy-Area.webp” (which would all be tagged with “Map”.

This has nothing to do with file path, I don’t care about file path, only file name/title. There’s a great world where every aboleth and zombie are tagged as such, but I have thousands and thousands of tokens.

Is there a way to make it so every title is automatically a tag?

If you are using file names to essentially store tags then why not import them as tags like I have said in the beginning?

If you know how to use regular expressions then yes. Basically to turn file names without paths and extensions into dash-separated tags use this:

image

Once imported you will get this, and you can modify the tags as desired:

image

1 Like

This might be the solution. Let me play around with it some.

Thanks for your attention!

Following up for future users:

I think the correct solution is in fact to import the filename as a tag. But I think Hydrus Network is a better fit for the underlying software, for a couple of reasons.

Most relevant, everything is a tag, which means everything is searchable, no weird “Properties are different on purpose - this is just something shown in the sidebar.” stuff going on. And adding the filename as a tag is trivial on import, and requires zero knowledge of regex.

It also has tons of value add features like built in downloaders, subscriptions to recurring content sources (like Patreon and subreddits), and shared community tags of file hashes.

I think the entire ecosystem of Hydrus is quite clever and very intuitive, and I found it to be the correct solution for my needs.