Search Initiative: Reduce bus factor of Search ecosystem and improving core search by adding base components of Search API to Drupal Core.

Created on 14 September 2018, almost 6 years ago
Updated 5 June 2024, 23 days ago

At Drupal Europe, I (Joris) guided a core conversation around getting Search API into Drupal Core. There were 2 main drivers for this.
The first driver behind this question were the factual numbers. Today, Search API has 30k installs for Drupal 8 and 70K installs for Drupal 7. Also, Search API is mainly maintained by 5 contributors, split between Search API, Search API Solr & Facets and some others. This bus factor is obviously high and is one of the concerns we would like to address.

Next to that, the current core search module has a few open issues with feature requests of things that already in Search API. There are loads of agencies that are using Search API to provide them with a good base for creating awesome search experiences. To decrease the community split between the 2 modules and to enable a more powerful solution out of the box, we could leverage some of the Search API code

There are different approaches we can take to resolve this problem. We can a do a very simple copy/paste of the module into the core directory, deprecate the current search and upload a patch. We don’t think that’s very likely to be given a green light, and doesn’t provide a transition path.

Another option to resolve that community split is to deprecate the current core search and point people wanting to create searches towards Search API. This is probably the easiest to do on a technical level. It would be a first for drupal core to point towards a contrib module (or contrib module ecosystem) as a solution for something. This unfortunately doesn’t solve the bus factor issue.

We could also copy the API bits of Search API into core and leverage them from Search API’s perspective, disregarding Drupal Core Search. This is bad, because it leaves the core search in the same state and only helps for the bus factor, but has no added value for anyone not using Search API.

The last solution we could think of, is to move parts of Search API that are stable, well-tested and uncontroversial to core and improve core search to work with them. We have to figure out which parts of Search API that is and what internal dependencies they have. When we do that, we can make current search better and decrease the surface of Search API. Eventually this hopefully means that we can keep the UI in contrib-land during the drupal 8 cycle, perhaps even for Drupal 9.
This is the solution that we (maintainers of Search API ecosystem) think is the path of least resistance towards improving the current state and benefits both problem-spaces that we are trying to resolve.

Usecases we are targeting to improve:
  1. Improve the current core search code by letting it use classes and components that are carried by more hands.
  2. Ensure the stability on the Search API ecosystem by handing parts off to core.

Usecases we are not targeting to improve:

  • Improving the current search UX/HTML output
Sign-offs given:
None yet. Meet the initiative team
  • Joris: Doing the things (Facets maintainer)
  • Thomas: Doing the rest of the things (Search API maintainer)
  • Jimmy: Help with doing the things (Facets maintainer)
  • Nick: Coordinating the things (Search API maintainer)
  • Markus: Test the things with other backends (Search API Solr maintainer)
What exactly are we planning to do?

Parts that we propose can move from Search API to core:
- Tracking
- Indexing

These are parts of Search that can also be used by core and they are the most stable parts of Search API. They are small(er) and probably the least controversial bits. That doesn’t mean we don’t want the other components in there, but this makes this conversion lighter and easier to grok.

How we are working

Not yet, but you can find us in #search on drupal slack. That’s where the Search API team hangs out most of the time. Some of us are in the rocket chat (drupalchat.me#search)

As soon as this is approved, we will create issues for the parts we want to solve in the core issue queue.

How you can help

  • Help define/confirm the path forward.
  • Help write documentation/code for the new features.
  • Help us understand the process on pushing this forward.
📌 Task
Status

Active

Component

Idea

Created by

🇧🇪Belgium borisson_ Mechelen, 🇧🇪

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • 🇬🇧United Kingdom catch

    I think this needs to be revisited in terms of starshot.

    If starshot includes search_api (not a given, but it's likely to be discussed), then the 'out of the box' Drupal experience for new users won't include core search module. A big reason for search being in core is precisely that out of the box experience.

    Assuming that starshot does include search_api, this leaves three possibilities:

    1. search_api in starshot, search module in core (and not enabled in starshot). IMO this would be very bad.

    2. search_api starts moving into core, starshot includes search_api + maybe extra contrib modules. (basically what this issue proposes)

    3. search_api in starshot, search module moves directly to contrib, no search in core (would break help topics search integration, maybe other things).

  • 🇫🇷France andypost

    Moreover the help module's topics using core search implementing HelpSearch plugin and have tricks with cron-indexing

Production build 0.69.0 2024