stashapp / stash

An organizer for your porn, written in Go. Documentation: https://docs.stashapp.cc
https://stashapp.cc/
GNU Affero General Public License v3.0
8.72k stars 774 forks source link

[Feature] Scene search includes tag names and performer names #2976

Open TopherIsSwell opened 1 year ago

TopherIsSwell commented 1 year ago

Is your feature request related to a problem? Please describe. When searching scenes, often I want to search by keywords that are tagged, but not included in the scene. Or sometimes I search by performer name. It is frustrating that scene search seems to only search against the scene title requiring me to switch to performer or tag screens (and then click through to scenes) to find the related scenes. It seems intuitive that searching for a word that is a performer name, tag name, or substring of scene title ought to produce a hit on the scene search screen.

Describe the solution you'd like Ideally, I'd like my query on the scene screen (findScene query?) to search against tag names and performer names as well (maybe studio name for completeness). Even though it might be a little unintuitive to have search results ordered by scene title instead of by "relevance", I'm perfectly happy with existing ordering options.

Describe alternatives you've considered The manual way of clicking to the performers and/or tags and searching there and clicking through to scenes. It just lacks ergonomics.

Another alternative, in case changing how the scene search breaks backward compatibility or requires too big of a refactor, there could be a "universal search" UI element (maybe on the "Stash" homepage?) that searches the dimensions of scene title, performer, tag, studio, (maybe descriptions on any of these?) and return scenes. A more ambitious idea would be to have a search that could return scenes, performers, studios, all in the same results. But again, that all seems like a lot of work. I'm hoping it's simple and acceptable enough to include the tag/performer dimensions on the scene search.

Additional context search in scene screen shows no results image But there are scenes tagged with the search term image

skier233 commented 1 year ago

+1+1+1!!!!

PhuriousGeorge commented 1 year ago

@skier233 please do not +1, use the emoji thumbs up or down to help gauge interest

skier233 commented 1 year ago

@skier233 please do not +1, use the emoji thumbs up or down to help gauge interest

already discussed on discord

DogmaDragon commented 1 year ago

I like the idea of a universal search option that would query multiple tables (and making it configurable). But I'm against the idea of making scene query search against tags/performers. It would make the current query pointless as pretty much every single word used for titles is also used for tag names.

skier233 commented 1 year ago

I like the idea of a universal search option that would query multiple tables (and making it configurable). But I'm against the idea of making scene query search against tags/performers. It would make the current query pointless as pretty much every single word used for titles is also used for tag names.

Yea. sounds like it could just be configurable then on which tables it queries. I do like the idea of querying the tags/performers table so making it configurable could let everyone have it their way.

WeedLordVegeta420 commented 1 year ago

I do think this would need to be configurable or an entirely separate universal search of some sort. It can already be difficult in some scenarios to narrow down Scene search results and this would potentially make the results even broader.

7dJx1qP commented 1 year ago

This has been discussed a while ago on Discord and here but it really boils down to searching being different from filtering. Filtering is what Stash provides now, and the search box as implemented is just on top of that.

For a proper and powerful search, we need a search engine @SmallCoccinelle created a great discussion on it https://github.com/stashapp/stash/discussions/1964

Unfortunately it looks like this was never completed. https://github.com/stashapp/stash/pull/1986 https://github.com/stashapp/stash/pull/1957

Here's a link to the discussion on Discord around the time the github discussion was being drafted https://discord.com/channels/559159668438728723/559169859351740418/905144211261767730

skier233 commented 1 year ago

This is certainly a very complex way to do it. Maybe its the correct way to do it but I don't have enough experience to know that answer. It's a shame the WIP was abandoned. In my opinion this is one of the things stash is currently lacking the most and it would be awesome to get this. I certainly don't have the experience to implement it the way described in that document though unfortunately.

SmallCoccinelle commented 1 year ago

The WIP would probably need some changes since it's been a year since I last did some work on it.

The underlying approach is still sound I think. Search reads a feed of changes based on the trigger system that's in stash for the plugins. It periodically redoes the whole index from scratch to fixup eventually inconsistencies.

This makes search a side-thing to the normal workflow of stash, which means it can live more or less on its own.

The use case for search is exactly this issue. You are searching in the whole corpora of data, and you get back multiple hits from different database tables, depending on which criteria are matching.

0xb0af commented 1 year ago

This is a critical feature IMHO. The fact that you can have hundreds of videos tagged pmv and a search for pmv can produce 0 results means search is pretty broken IMHO.

Even a search box that ignores titles and only returns scenes with matching tags would be preferable.