Page MenuHomePhabricator

EPIC: As a search API consumer, I'd like a search service to be created that can surface search results in a more logical and consistent format.
Closed, DeclinedPublic

Description

The search API is a little awkward to use and a lot of amalgamation of the results takes place on the client of the apps in order to serve user needs. While that's better than nothing, it's suboptimal to be performing amalgamation and reorganising in a duplicative manner on the client, as it slows the app down (particularly on older devices) and means that other consumers can't benefit from the same improvements.

In the long run, the Search and Discovery Team may or may not want to be tied to the MediaWiki API in order to surface results, so this is also more future-proofed; one can easily swap out the backend of the service for something else without needing to update the client code.

Goal:

  • Create a service that takes a search query, and returns a list of the most relevant articles for that query with associated metadata
  • For the first iteration, the service's backend will be based on the existing MediaWiki search API

Initial stakeholders and consumers of this data:

  • Android Wikipedia app
  • iOS Wikipedia app

Acceptance criteria for this work:

  • Reduce number of round-trips required to surface search results in the Android and iOS apps to 1
  • Reduce payload size of service by 20% compared to existing API by omitting redundant/duplicative data and streamlining output
  • Average round-trip time should be no worse than the existing search API

Event Timeline

Deskana moved this task from Needs Triage to Tracking on the Wikipedia-Android-App-Backlog board.
Deskana added a project: Epic.
Deskana set Security to None.
Deskana moved this task from Needs Triage to Tracking on the Wikipedia-iOS-App-Backlog board.

The Search and Discovery Department should schedule a meeting with the relevant people working on the mobile apps to discuss initial requirements.

LGoto subscribed.

Closed as part of board grooming process.