Search is really bad

Search only returns exact matches. Am I supposed to know the spelling of Matthew McConaughey or Arnold Schwarzenegger? Searching for “Figh Club” returns nothing etc. Can’t you add an elasticsearch instance or something?

1 Like

you are not wrong about that. i do myself first go to google to find the exact spelling and then search it here. Indeed a form of elasticsearch (btw, is this the tech term that what google does?) would be nice.

1 Like

A fuzzy search is a process that locates Web pages that are likely to be relevant to a search argument even when the argument does not exactly correspond to the desired information.

Yes, this has been requested some time ago and if I remember correctly the devs @trakt said they weren’t able to do it at the time, which was fine as an answer … back then. Nobody is perfect. After years, it is now totally viable indeed to ask for this crucial feature again, therefore I wholeheartedly support the notion. And if they cannot do it still, one may suggest hiring someone who can (temporarily). Trakt is such an exceptional service and seeks its equal on many levels, all the more I wonder why its search has stubbornly remained a PIA since the very beginning.

4 Likes

I agree wholeheartedly! With Elasticsearch (or similar) you would also get matching suggestions as you type so it would be easy to match something you weren’t exactly sure about the name of. It even accounts for spelling mistakes.

We used to have the worst site search on Fanart.tv, but now it’s like a totally different site. This is the way search is supposed to work and would really step up Trakt’s game.

2 Likes

We use Solr for search currently. It powers a lot of stuff besides search (trending, popular, etc). We’ve tried to tweak various things over the years, but the reality is our knowledge is limited. We are considering Elasticsearch and to find time to dive deeper into that. @Akovia any idea if Elasticsearch can be a full replacement for Solr?

2 Likes

Elasticsearch and Solr use the same underlying engine (Lucene) and they both offer similar functionality. It is a matter of configuring analyzers/tokenizers both for indexing and querying

1 Like

@justin, I’m afraid that is out of my wheelhouse but I think Kode (the actual site owner) would be happy to talk shop if you dropped by the discord channel. My time has been spent building and writing the wiki over the last year but I’m on hiatus over the summer. If I remember correctly, he was using Trakt around the time I started on the site which was nearly a decade ago, so he might have an actual interest in helping. I’ll give him a heads-up in case you do stop by.

@mcdallas seems like he might be helpful as well. If there is any way I can grease the rails for you I will. I use your search constantly and it would be a huge help.

So I pinged Kode and he had this to say.

I’ve not used trakt for a while and I’m not a vip member but still happy to help…
we use meilisearch instead of elastic search, it’s free, open source and self hosted

Let me know if there’s anything else I can help with and I’ll certainly try.

Awesome, thanks for the suggestion. I plan to look into meilisearch and see if that can be a solr replacement. It looks like the main limitation is not searching multiple types (movies + shows for example) but they plan to support that in the future. I also like their examples are all about searching movies :blush:

5 Likes

I did a proof of concept with Meilisearch and it is a promising start. It has several limitations though, which they are updating in a future release according to their GitHub. The main things it’s missing that we need are searching multiple types (Movies + Shows at the same time) and filtering a large amount of items (hide all your watched items for example).

We’ll be taking another look at Elasticsearch as well. I don’t have an ETA on this, but we do want to enhance/replace the search service to make it better for everyone.

12 Likes

I actually hope the search does not change. It is fast and responsive. In my experience when sites use auto-complete as part of the search process it adds an extreme amount of overhead to the point of annoyance. If you do plan to change the backend to Elastic or another indexer, please do not include the auto-complete function within the search. Just allow the user to type whatever they want and do the corrections in the back-end before results are delivered. Even then it could be an unwelcome outcome with overhead and delayed response times.

Not sure why I’m not getting updated on responses to this thread. I thought it died.

@justin, you would need to speak with Kode and maybe I’m missing something, but the search on Fanart searches TV, Movies, and Music at the same time.

@outspoken, have you tried the search on Fanart? Results are nearly instant and can’t imagine how anything could be quicker.

I’m guessing Fanart.tv is running multiple searches on the backend then combining the results into a single set. Meilisearch has an “in progress” feature update to support true multi index searching. https://roadmap.meilisearch.com/c/74-multi-index-search

It looks like they have an October release date for the other missing feature we’d need to filter in/out a large set of IDs. IN / CONTAINS operator · Discussion #407 · meilisearch/product · GitHub

You are probably right about multiple searches simultaneously. I’ll ask next time I talk with Kode to confirm.

I do know that nothing’s hosted on any insane hardware, and the results are still lightning fast. I’m sure your requirements will be more than ours, but it seems promising.

Glad to see you have your finger on the pulse, and make sure to reach out to Kode if you need. I told him you might.

Cheers

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.

I’ve started to take a deep diver into upgrading Trakt search. I am working with Meilisearch right now and while promising, I still have some outstanding questions I am trying to figure out. If I can’t around these limitations, then Meilisearch might not be an options for us.

  • It doesn’t support sorting when retrieving all documents. For example, when viewing Popular Movies I need to return all movies, sorted by the popularity rank. Meili can’t do the sorting yet (the idea is under consideration).
  • They now support searching multiple index (i.e. movies + shows) at once. However, the results are separate so I can’t do a combined Shows + Movies search like we currently have.
  • It’s hard to find benchmarks with large search indexes. For example, we have nearly 1 million movies, 5 million TV show episodes, and over 45 million podcast episodes (:bangbang:). We’d of course need to have very fast indexing and searching performance.
  • I haven’t extensively tested complex filters yet. For example, we might need to filter out 3,000 watched movies from the Popular Movies page if someone turns on that filter.

Solr currently handles all of this with no issues. However, the search configuration doesn’t handle typos or partial matches that well. I am planning to look if we can update our config to handle this better.

I’ll also be looking into Elasticache. Meiliesearch is very cool for a great out of the box experience and config values. I’m just not sure it can handle the scale and performance that we need.

6 Likes

Justin thanks for looking into this, the quality of searching has been one of my main issues with trakt over the years so any improvement would be welcome :slight_smile:

1 Like

Here’s an update on this.

  • I seemed to have figured out the sorting issues and have that working with the same advanced filters we have now.
  • I’m still working on benchmarks, but it is promising and has very quick performance on Episodes (which has nearly 5 million items). The unknown is once Meilisearch starts processing as much as Solr and how it will work.

I’m hoping to start populating and testing live data next week and our first real test will be integrating Meilisearch in TraktCasts.

8 Likes

That’s fantastic news!

Nothing ever goes as planned, but I’ll hold old hope you’ll be able to work through the issues.
:crossed_fingers: