SlideShare a Scribd company logo
Search API ecosystem in Drupal 8
Joris Vercammen | @borisson
State of search | drupal dinner
State of search | drupal dinner
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
State of search | drupal dinner
State of search | drupal dinner
State of search | drupal dinner
State of search | drupal dinner
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
• 2010 (d7)
• Generic and flexible search tools
• Different data
• Different search engines
• Different types of user interfaces
• Features:
• Keywords
• Facets
• Sorts
• Views integration
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
• Search api
• apachesolr
• 4+ years in the making
• Crowdfunding campaign
• Google Summer of Code
State of search | drupal dinner
State of search | drupal dinner
State of search | drupal dinner
https://www.flickr.com/photos/amazeelabs/29685728830/
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
drupal.org
• Issue queues are powered with Search API Drupal 7
using the MySQL backend.
Community
…
State of search | drupal dinner
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
• Search index
• Search server
• Search Display
• modules
• search_api
• search_api_db
• search_api_db_defaults
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
State of search | drupal dinner
https://www.youtube.com/watch?v=hA1N6Xggth8
https://www.youtube.com/watch?v=LKN-fv3juIg
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
• Overhaul / Improve administration UI [#2387893]
• Improve Fields UI [#2641388]
• Config overrides for search entities [#2682369]
• Cacheability [#2753667]
• Documentation and tests
State of search | drupal dinner
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• Introduction
• Demo
• Introduction
• Demo
• solarium
• Introduction
• Demo
State of search | drupal dinner
State of search | drupal dinner
State of search | drupal dinner
State of search | drupal dinner
https://youtu.be/5m4ph6ZDmjM
State of search | drupal dinner
State of search | drupal dinner
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• Architecture
• Demo
• Todo
• Architecture
• Demo
• Todo
• Facet
• FacetSource
• Processor
• Widget
• Url processor
• modules
• Facets
• Rest Facets
• Core Search Facets
• Facet Summary (Experimental)
• Architecture
• Demo
• Todo
State of search | drupal dinner
https://www.youtube.com/watch?v=31p77ka8Tws
• Architecture
• Demo
• Todo
• Use only phpunit-based tests [#2737361]
• Refactor integration with search api [#2772745]
• Add a solid slider and range widget [#2755663]
• Documentation + tests
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• Search API
• Beta 3
• Search API Solr
• Beta 1
• Search API Page
• Alpha 11
• Search API Sorts
• Alpha 1
• Search API Autocomplete
• Alpha 1
• Search API attachments
• Alpha 4
• Search API Exclude Entity
• Alpha 3
• Facets
• Alpha 6
• Facets pretty paths
• Sandbox module available
• https://travis-ci.org/mkalkbrenner/search_api_integration_tests
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
State of search | drupal dinner
• Search API Processor.
• Drupalsearch_apiProcessorProcessorInterface
• No configuration
<?php



namespace Drupalcustom_test_modulePluginsearch_apiprocessor;



use DrupalnodeNodeInterface;

use Drupalsearch_apiProcessorProcessorPluginBase;



/**

* Ignores indexing of nodes with a pipe in the title.

*

* @SearchApiProcessor(

* id = "ignore pipe title",

* label = @Translation("Ignore pipe title"),

* description = @Translation("Adds a custom rule to ignore titles with pipes"),

* stages = {

* "alter_items" = 0

* }

* )

*/

class IgnorePipeTitle extends ProcessorPluginBase {



/**

* {@inheritdoc}

*/

public function alterIndexedItems(array &$items) {

foreach ($items as $item_id => $item) {

$object = $item->getOriginalObject()->getValue();

$is_node = $object instanceof NodeInterface;

if ($is_node && strpos($object->getTitle(), '|') !== FALSE) {

unset($items[$item_id]);

}

}

}



}
<?php



namespace Drupalcustom_test_modulePluginsearch_apiprocessor;



use DrupalnodeNodeInterface;

use Drupalsearch_apiProcessorProcessorPluginBase;



/**

* Ignores indexing of nodes with a pipe in the title.

*

* @SearchApiProcessor(

* id = "ignore pipe title",

* label = @Translation("Ignore pipe title"),

* description = @Translation("Adds a custom rule to
ignore titles with pipes"),

* stages = {

* "alter_items" = 0

* }

* )

*/

class IgnorePipeTitle extends ProcessorPluginBase {



/**

* {@inheritdoc}

*/

public function alterIndexedItems(array &$items) {

foreach ($items as $item_id => $item) {

$object = $item->getOriginalObject()->getValue();

$is_node = $object instanceof NodeInterface;

if ($is_node && strpos($object->getTitle(), '|') !== FALSE) {

unset($items[$item_id]);

}

}

}



}
<?php



namespace Drupalcustom_test_modulePluginsearch_apiprocessor;



use DrupalnodeNodeInterface;

use Drupalsearch_apiProcessorProcessorPluginBase;



/**

* Ignores indexing of nodes with a pipe in the title.

*

* @SearchApiProcessor(

* id = "ignore pipe title",

* label = @Translation("Ignore pipe title"),

* description = @Translation("Adds a custom rule to ignore titles with pipes"),

* stages = {

* "alter_items" = 0

* }

* )

*/

class IgnorePipeTitle extends ProcessorPluginBase {



/**

* {@inheritdoc}

*/

public function alterIndexedItems(array &$items) {

foreach ($items as $item_id => $item) {

$object = $item->getOriginalObject()->getValue();

$is_node = $object instanceof NodeInterface;

if ($is_node
&& strpos($object->getTitle(), '|') !== FALSE)
{

unset($items[$item_id]);

}

}

}


}
Should I use these now?
State of search | drupal dinner
Questions?
Joris Vercammen | @borisson
Thanks!
Joris Vercammen | @borisson

More Related Content

PDF
State of search | drupalcon dublin
PDF
State of search | drupalcamp ghent
PDF
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
PDF
Search api d8
PDF
Using Search API, Search API Solr and Facets in Drupal 8
PPTX
Drupal 8. Search API. Facets. Customize / combine facets
PPTX
PDF
A Practical Guide To Hypermedia APIs - Philly.rb
State of search | drupalcon dublin
State of search | drupalcamp ghent
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
Search api d8
Using Search API, Search API Solr and Facets in Drupal 8
Drupal 8. Search API. Facets. Customize / combine facets
A Practical Guide To Hypermedia APIs - Philly.rb

What's hot (20)

PDF
YiiConf 2012 - Alexander Makarov - Yii2, what's new
PPTX
Hibernate Tips ‘n’ Tricks - 15 Tips to solve common problems
PPTX
Single page application 07
PDF
iOS for ERREST
PPTX
Introduction to Monsoon PHP framework
PDF
Why Django
PDF
Parse
PDF
ORM Pink Unicorns
PPTX
Hibernate Performance Tuning @JUG Thüringen
PDF
Doing Drupal security right
PDF
Parse - Backend as a Service
KEY
Scraping Scripting Hacking
PDF
Solr: 4 big features
ODP
Introduction to Apache Solr
PDF
Building an API with Django and Django REST Framework
PPTX
Battle of the giants: Apache Solr vs ElasticSearch
PDF
In memory OLAP engine
PPTX
04 integrate entityframework
PPTX
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
PDF
Docker4Drupal 2.1 for Development
YiiConf 2012 - Alexander Makarov - Yii2, what's new
Hibernate Tips ‘n’ Tricks - 15 Tips to solve common problems
Single page application 07
iOS for ERREST
Introduction to Monsoon PHP framework
Why Django
Parse
ORM Pink Unicorns
Hibernate Performance Tuning @JUG Thüringen
Doing Drupal security right
Parse - Backend as a Service
Scraping Scripting Hacking
Solr: 4 big features
Introduction to Apache Solr
Building an API with Django and Django REST Framework
Battle of the giants: Apache Solr vs ElasticSearch
In memory OLAP engine
04 integrate entityframework
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
Docker4Drupal 2.1 for Development
Ad

Similar to State of search | drupal dinner (20)

PDF
Becoming "Facet"-nated with Search API
PDF
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
PDF
Денис Головняк - Продвинутый поиск с помощью Search API
PPTX
DRUPAL Search API Solr
PDF
Real-time search in Drupal with Elasticsearch @Moldcamp
PDF
Real-time search in Drupal. Meet Elasticsearch
PDF
Apache Solr Search Course Drupal 7 Acquia
KEY
Intro to Apache Solr for Drupal
PPTX
D8 search api
PDF
In search of: A meetup about Liferay and Search 2016-04-20
PDF
Mastering Elasticsearch 2nd Edition Edition Rafal Kuc
PDF
Ilyin drupal-solr 0
PDF
Search Engine-Building with Lucene and Solr
KEY
Switching search to SOLR
PPTX
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)
ODP
Solr facets and custom indices
KEY
Apache Solr - Enterprise search platform
PPTX
Search Engines: Best Practice
PDF
100 Sites. A Mixed Drupal Platform. One Federated Search Solution.
PPTX
Search Engine Building with Lucene and Solr (So Code Camp San Diego 2014)
Becoming "Facet"-nated with Search API
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
Денис Головняк - Продвинутый поиск с помощью Search API
DRUPAL Search API Solr
Real-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal. Meet Elasticsearch
Apache Solr Search Course Drupal 7 Acquia
Intro to Apache Solr for Drupal
D8 search api
In search of: A meetup about Liferay and Search 2016-04-20
Mastering Elasticsearch 2nd Edition Edition Rafal Kuc
Ilyin drupal-solr 0
Search Engine-Building with Lucene and Solr
Switching search to SOLR
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)
Solr facets and custom indices
Apache Solr - Enterprise search platform
Search Engines: Best Practice
100 Sites. A Mixed Drupal Platform. One Federated Search Solution.
Search Engine Building with Lucene and Solr (So Code Camp San Diego 2014)
Ad

Recently uploaded (20)

PPTX
Introduction to Information and Communication Technology
PPT
tcp ip networks nd ip layering assotred slides
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PDF
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PPTX
international classification of diseases ICD-10 review PPT.pptx
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PPT
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
PPTX
Internet___Basics___Styled_ presentation
PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PDF
Paper PDF World Game (s) Great Redesign.pdf
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PPTX
innovation process that make everything different.pptx
PPTX
Power Point - Lesson 3_2.pptx grad school presentation
PPTX
Funds Management Learning Material for Beg
Introduction to Information and Communication Technology
tcp ip networks nd ip layering assotred slides
SASE Traffic Flow - ZTNA Connector-1.pdf
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PptxGenJS_Demo_Chart_20250317130215833.pptx
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
international classification of diseases ICD-10 review PPT.pptx
Design_with_Watersergyerge45hrbgre4top (1).ppt
Introuction about WHO-FIC in ICD-10.pptx
Module 1 - Cyber Law and Ethics 101.pptx
isotopes_sddsadsaadasdasdasdasdsa1213.ppt
Internet___Basics___Styled_ presentation
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
Cloud-Scale Log Monitoring _ Datadog.pdf
introduction about ICD -10 & ICD-11 ppt.pptx
Paper PDF World Game (s) Great Redesign.pdf
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
innovation process that make everything different.pptx
Power Point - Lesson 3_2.pptx grad school presentation
Funds Management Learning Material for Beg

State of search | drupal dinner