Taiga: Algolia search for Kitsu

Created on 9 Jan 2021  ·  6Comments  ·  Source: erengy/taiga

It seems that Kitsu.io is now promoting Algolia search api.

Kitsu uses Algolia for searching. Algolia's search provides more accurate search results and allows you to build complex search filters to find exactly what you want.

While not often, when searching with Taiga's current query string which uses the previous api, the exact match for a title could be buried hundreds of results deep into the list, especially when it has been recently added to kitsu's database. This often happens when trying to add anime for the upcoming season and prevents an anime from being added to Taiga as it only returns the first 20 results. A current work around is to go to kitsu.io itself and add it manually.

The documentation is still in progress but can be found here:
https://hummingbird-me.github.io/api-docs/#tag/Algolia

Using browser developer tools and searching for something on the kitsu.io homepage is one way of seeing it work.

You can probably also ask the kitsu devs directly as well if you need any assistance, and on a side note one of them has given a thumbs up to this issue.

kitsu

All 6 comments

Hey, it looks like the Algolia search api was already implemented (in a simplified way) in Taiga a long time ago.
I just compared the API calls with the documentation and everything is matching (as far as I can see).
Same goes for 1.3.1 (latest stable).

A few modifications were done afterwards, but we wont see them in a stable before 1.4.0 gets released.

I didn't see anything to indicate that algolia was being done, at least for search queries, other than some overlap in the names of the fields, maybe I overlooked it or you are on a private branch: current public develop branch kitsu.cpp

The current query in the latest develop branch, for example doesn't return METAMAN in the results, and in this case, troubling in that it only returns 15 hits so it should be in there:

https://kitsu.io/api/edge/anime?filter[text]=metaman&page[offset]=0&page[limit]=20&fields[anime]=abbreviatedTitles,ageRating,averageRating,canonicalTitle,endDate,episodeCount,episodeLength,popularityRank,posterImage,slug,startDate,status,subtype,titles,animeProductions,categories,synopsis&fields[animeProductions]=producer&fields[categories]=title&fields[producers]=name

Wayback Machine Preserved Results


Algolia query from their homepage gets it as its first hit:

https://kitsu.io/api/edge/algolia-keys
https://awqo5j657s-1.algolianet.com/1/indexes/production_media/query?x-algolia-agent=Algolia for vanilla JavaScript (lite) 3.24.12&x-algolia-application-id=AWQO5J657S&x-algolia-api-key=.....
POST GraphQL query:

   {   "params": "query=metaman&attributesToRetrieve=[" id "," slug "," kind "," canonicalTitle "," titles "," posterImage "," subtype "," posterImage "]&hitsPerPage=4&queryLanguages=[" en "," ja "]&naturalLanguages=[" en "," ja "]&attributesToHighlight=[]&responseFields=[" hits "," hitsPerPage "," nbHits "," nbPages "," offset "," page "]&removeStopWords=false&removeWordsIfNoResults=allOptional"}

Returned results:

{
    "hits": [{            "titles": {
                "en": "METAMAN",
                "en_cn": "Wang Gu Shenhua Zhi Tian Xuanzhe",
                "zh_cn": "望古神话之天选者"
            },
            "canonicalTitle": "METAMAN",
            "subtype": "ONA",
            "slug": "wang-gu-shenhua-zhi-tian-xuanzhe",
            ....

api/edge is our old JSON:API API and uses ElasticSearch (which we replaced with Algolia standalone and powers search in the new GraphQL API)

@wopian If Taiga switched to the new GraphQL API, would it still be necessary to call Algolia?

@wopian If Taiga switched to the new GraphQL API, would it still be necessary to call Algolia?

Nope. The search methods call Algolia for you.

I have a local branch for the GraphQL API now. It's going to be available as an option once the API covers everything Taiga needs.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dobbleg1000 picture dobbleg1000  ·  5Comments

tophf picture tophf  ·  4Comments

Papde picture Papde  ·  3Comments

Cephel picture Cephel  ·  3Comments

rr- picture rr-  ·  3Comments