Since the release of Drupal 7, the Search API module (along with its numerous extensions) has been providing a new, flexible way of creating searches in Drupal. It was considered as a model for core search in Drupal 8 at some point and is now used on Drupal.org for issue queue searches. However, as it was designed almost from scratch for Drupal 7, numerous shortcomings were identified in its architecture since its creation. Some of these shortcomings could be (more or less cleanly) patched or at least worked around, but it still contains a number of limitations that make it less flexible than it could be, and too inflexible for some tasks. Some of these shortcomings even lead to very hard-to-fix UX issues in the module.

While of course the module's Drupal 7 version continues to be worked on to remove or mitigate these issues, Drupal 8 and the module overhaul necessitated (or at least facilitated) by its coming finally provide the chance to fix some of these fundamental shortcomings right at their roots, by improving the framework in ways that aim to perfect its principle of flexibility and finally make it the go-to solution for all advanced search use cases in Drupal. (More information on these changes can be found via the meta issue.) This should also enable the planned consolidation of the two Apache Solr modules by removing existing complications in this endeavor.

In this presentation I will start by giving an introduction into the basic ideas of the Search API's architecture, from a developer's perspective, and then go on to discuss the changes planned (or already carried out in the code sprint) for the Drupal 8 branch, its (planned) final architecture and how module developers will be able to interact with the framework and use it to implement their own search solutions (either generally useful d.o project or custom, site-specific module).

Since the Search API is a rather complex module, using a lot of Drupal's more advanced development features, the presentation will also give a good insight into some of Drupal core's changes in this area – Drupal 8's more refined Entity API, the new plugin system in core, some advanced features of the new configuration management, etc. (Part of this can also be read in my (yet unfinished) D8 upgrade blog post series.)

Required prior knowledge

This is an advanced session, generally not targeting people who have just started Drupal development. Some familiarity with the Search API, at least from the user side, is additionally advantageous. Finally, if you have already some knowledge of Drupal 8 development, you might also find the concrete examples easier to follow (though it isn't really required).