SlideShare une entreprise Scribd logo
1  sur  71
Télécharger pour lire hors ligne
Search API ecosystem in Drupal 8
Joris Vercammen | @borisson
Site building
https://events.drupal.org/dublin2016/sessions/search-api-ecosystem-drupal-8
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• 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
• Build Views of your entities including advanced
features like
• Keywords
• Facets
• Filters
• Sorts
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
• 3+ years in the making
• Crowdfunding campaign
• Google Summer of Code
• 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
…
• 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
https://www.youtube.com/watch?v=hA1N6Xggth8
https://www.youtube.com/watch?v=LKN-fv3juIg
• Introduction
• The big merge
• Influences
• Architecture
• Demo
• Open issues
• Hierarchical entities [#2625152]
• Overhaul / Improve administration UI [#2387893]
• Improve Fields UI [#2641388]
• Config overrides for search entities [#2682369]
• Fix test fails on php5.x on testbot [#2784849]
• Documentation and tests
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• Introduction
• Demo
• Introduction
• Demo
• solarium
• Introduction
• Demo
https://www.youtube.com/watch?v=QAbnMCA2utI
• 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
• Architecture
• Demo
• Todo
https://www.youtube.com/watch?v=31p77ka8Tws
• Architecture
• Demo
• Todo
• Implement pretty paths [#2677728]
• Hierarchy [#2598304]
• Bring facets up to date with Search API’s beta 1
[#2794745]
• Create a date query type [#2611812]
• Add a solid slider and range widget [#2755663]
• Add current search block / search summary
[#2735891]
• Documentation + tests
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• Search API
• Beta 2
• Search API Page
• Alpha 11
• Search API Solr
• Alpha 6
• Search API Sorts
• Alpha 1
• Elastic Search
• Development version
• Search API Autocomplete
• Development version
• Search API attachments
• Alpha 4
• Search API Exclude Entity
• Development version
• Facets
• Alpha 5
• Facets pretty paths
• Sandbox module available
• Search API
• Search API Solr
• Facets
• More addon modules
• Custom code
• Search API Processor.
• Drupalsearch_apiProcessorProcessorInterface
• Settings
• “ | ignore”
<?php



namespace Drupalcustom_codePluginsearch_apiprocessor;



use DrupalnodeNodeInterface;

use Drupalsearch_apiIndexInterface;

use Drupalsearch_apiProcessorProcessorPluginBase;



/**

* Excludes unpublished nodes from node indexes.

*

* @SearchApiProcessor(

* id = "ignore_nodes",

* label = @Translation("Ignore nodes for custom rules"),

* description = @Translation("Don't index nodes according to our custom rules."),

* stages = {

* "preprocess_index" = -50

* }

* )

*/

class IgnoreNodes extends ProcessorPluginBase {



/**

* {@inheritdoc}

*/

public static function supportsIndex(IndexInterface $index) {

// Make sure that this processor only works on processors that have nodes

// indexed.

foreach ($index->getDatasources() as $datasource) {

if ($datasource->getEntityTypeId() == 'node') {

return TRUE;

}

}

return FALSE;

}



/**

* {@inheritdoc}

*/

public function preprocessIndexItems(array &$items) {

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

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



// Our nodes have " | ignore" in the title when they should be ignored and

// not indexed, this is hardcoded information because of the import from

// the external datasource.

if ($object instanceof NodeInterface) {

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

unset($items[$item_id]);

}

}

}

}

}
<?php



namespace Drupalcustom_codePluginsearch_apiprocessor;



use DrupalnodeNodeInterface;

use Drupalsearch_apiIndexInterface;

use Drupalsearch_apiProcessorProcessorPluginBase;



/**

* Excludes unpublished nodes from node indexes.

*

* @SearchApiProcessor(

* id = "ignore_nodes",

* label = @Translation("Ignore nodes for custom rules"),

* description = @Translation("Don't index nodes according to our
custom rules."),

* stages = {

* "preprocess_index" = -50

* }

* )

*/

class IgnoreNodes extends ProcessorPluginBase {



/**

* {@inheritdoc}

*/

public static function supportsIndex(IndexInterface $index) {

// Make sure that this processor only works on processors that have nodes

// indexed.

foreach ($index->getDatasources() as $datasource) {

if ($datasource->getEntityTypeId() == 'node') {

return TRUE;

}

}

return FALSE;

}



/**

* {@inheritdoc}

*/

public function preprocessIndexItems(array &$items) {

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

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



// Our nodes have " | ignore" in the title when they should be ignored and

// not indexed, this is hardcoded information because of the import from

// the external datasource.

if ($object instanceof NodeInterface) {

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

unset($items[$item_id]);

}

}

}

}

}
<?php



namespace Drupalcustom_codePluginsearch_apiprocessor;



use DrupalnodeNodeInterface;

use Drupalsearch_apiIndexInterface;

use Drupalsearch_apiProcessorProcessorPluginBase;



/**

* Excludes unpublished nodes from node indexes.

*

* @SearchApiProcessor(

* id = "ignore_nodes",

* label = @Translation("Ignore nodes for custom rules"),

* description = @Translation("Don't index nodes according to our custom rules."),

* stages = {

* "preprocess_index" = -50

* }

* )

*/

class IgnoreNodes extends ProcessorPluginBase {



/**

* {@inheritdoc}

*/

public static function supportsIndex(IndexInterface $index) {

// Make sure that this processor only works on processors that
have nodes

// indexed.

foreach ($index->getDatasources() as $datasource) {

if ($datasource->getEntityTypeId() == 'node') {

return TRUE;

}

}

return FALSE;

}



/**

* {@inheritdoc}

*/

public function preprocessIndexItems(array &$items) {

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

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



// Our nodes have " | ignore" in the title when they should be ignored and

// not indexed, this is hardcoded information because of the import from

// the external datasource.

if ($object instanceof NodeInterface) {

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

unset($items[$item_id]);

}

}

}

}

}
<?php



namespace Drupalcustom_codePluginsearch_apiprocessor;



use DrupalnodeNodeInterface;

use Drupalsearch_apiIndexInterface;

use Drupalsearch_apiProcessorProcessorPluginBase;



/**

* Excludes unpublished nodes from node indexes.

*

* @SearchApiProcessor(

* id = "ignore_nodes",

* label = @Translation("Ignore nodes for custom rules"),

* description = @Translation("Don't index nodes according to our custom rules."),

* stages = {

* "preprocess_index" = -50

* }

* )

*/

class IgnoreNodes extends ProcessorPluginBase {



/**

* {@inheritdoc}

*/

public static function supportsIndex(IndexInterface $index) {

// Make sure that this processor only works on processors that have nodes

// indexed.

foreach ($index->getDatasources() as $datasource) {

if ($datasource->getEntityTypeId() == 'node') {

return TRUE;

}

}

return FALSE;

}



/**

* {@inheritdoc}

*/

public function preprocessIndexItems(array &$items) {

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

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



// Our nodes have " | ignore" in the title when they should be ignored and

// not indexed, this is hardcoded information because of the import from

// the external datasource.

if ($object instanceof NodeInterface) {

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

unset($items[$item_id]);

}

}

}

}

}
Should I use these now?
Questions?
JOIN US FOR
CONTRIBUTION SPRINTS
First Time Sprinter Workshop - 9:00-12:00 - Room Wicklow2A
Mentored Core Sprint - 9:00-18:00 - Wicklow Hall 2B
General Sprints - 9:00 - 18:00 - Wicklow Hall 2A
Evaluate This Session
THANK YOU!
events.drupal.org/dublin2016/schedule
WHAT DID YOU THINK?

Contenu connexe

Tendances

Killing Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORMKilling Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORMOrtus Solutions, Corp
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engineWO Community
 
Intorduction of Playframework
Intorduction of PlayframeworkIntorduction of Playframework
Intorduction of Playframeworkmaltiyadav
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchRafał Kuć
 
Solr: 4 big features
Solr: 4 big featuresSolr: 4 big features
Solr: 4 big featuresDavid Smiley
 
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)Sematext Group, Inc.
 
A Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rbA Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rbSmartLogic
 
Alloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonAlloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonFokke Zandbergen
 
Android stepbystep
Android stepbystepAndroid stepbystep
Android stepbystepKrazy Koder
 
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
Django Overview
Django OverviewDjango Overview
Django OverviewBrian Tol
 
Doing Drupal security right
Doing Drupal security rightDoing Drupal security right
Doing Drupal security rightGábor Hojtsy
 
Introduction to Lucidworks Fusion - Alexander Kanarsky, Lucidworks
Introduction to Lucidworks Fusion - Alexander Kanarsky, LucidworksIntroduction to Lucidworks Fusion - Alexander Kanarsky, Lucidworks
Introduction to Lucidworks Fusion - Alexander Kanarsky, LucidworksLucidworks
 
Solr Anti - patterns
Solr Anti - patternsSolr Anti - patterns
Solr Anti - patternsRafał Kuć
 

Tendances (20)

Killing Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORMKilling Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORM
 
ORM Pink Unicorns
ORM Pink UnicornsORM Pink Unicorns
ORM Pink Unicorns
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engine
 
Intorduction of Playframework
Intorduction of PlayframeworkIntorduction of Playframework
Intorduction of Playframework
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearch
 
Solr: 4 big features
Solr: 4 big featuresSolr: 4 big features
Solr: 4 big features
 
Gaej For Beginners
Gaej For BeginnersGaej For Beginners
Gaej For Beginners
 
Introduction to Monsoon PHP framework
Introduction to Monsoon PHP frameworkIntroduction to Monsoon PHP framework
Introduction to Monsoon PHP framework
 
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)
Battle of the Giants - Apache Solr vs. Elasticsearch (ApacheCon)
 
A Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rbA Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rb
 
Solr
SolrSolr
Solr
 
Alloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonAlloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLon
 
Android stepbystep
Android stepbystepAndroid stepbystep
Android stepbystep
 
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
Django Overview
Django OverviewDjango Overview
Django Overview
 
Doing Drupal security right
Doing Drupal security rightDoing Drupal security right
Doing Drupal security right
 
Introduction to Lucidworks Fusion - Alexander Kanarsky, Lucidworks
Introduction to Lucidworks Fusion - Alexander Kanarsky, LucidworksIntroduction to Lucidworks Fusion - Alexander Kanarsky, Lucidworks
Introduction to Lucidworks Fusion - Alexander Kanarsky, Lucidworks
 
iOS for ERREST
iOS for ERRESTiOS for ERREST
iOS for ERREST
 
Solr Anti - patterns
Solr Anti - patternsSolr Anti - patterns
Solr Anti - patterns
 
Life outside WO
Life outside WOLife outside WO
Life outside WO
 

Similaire à State of search | drupalcon dublin

SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery EssentialsMark Rackley
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQueryMark Rackley
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointMark Rackley
 
Icinga 2009 at OSMC
Icinga 2009 at OSMCIcinga 2009 at OSMC
Icinga 2009 at OSMCIcinga
 
Web automation with #d8rules (European Drupal Days 2015)
Web automation with #d8rules (European Drupal Days 2015)Web automation with #d8rules (European Drupal Days 2015)
Web automation with #d8rules (European Drupal Days 2015)Eugenio Minardi
 
Introduction to Solr
Introduction to SolrIntroduction to Solr
Introduction to SolrJayesh Bhoyar
 
Drupal 8. Search API. Facets. Customize / combine facets
Drupal 8. Search API. Facets. Customize / combine facetsDrupal 8. Search API. Facets. Customize / combine facets
Drupal 8. Search API. Facets. Customize / combine facetsAnyforSoft
 
Examiness hints and tips from the trenches
Examiness hints and tips from the trenchesExaminess hints and tips from the trenches
Examiness hints and tips from the trenchesIsmail Mayat
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)Doris Chen
 
Using Search API, Search API Solr and Facets in Drupal 8
Using Search API, Search API Solr and Facets in Drupal 8Using Search API, Search API Solr and Facets in Drupal 8
Using Search API, Search API Solr and Facets in Drupal 8Websolutions Agency
 
Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010Rob Windsor
 
SharePoint goes Microsoft Graph
SharePoint goes Microsoft GraphSharePoint goes Microsoft Graph
SharePoint goes Microsoft GraphMarkus Moeller
 
Client-side MVC with Backbone.js
Client-side MVC with Backbone.js Client-side MVC with Backbone.js
Client-side MVC with Backbone.js iloveigloo
 
Client-side MVC with Backbone.js (reloaded)
Client-side MVC with Backbone.js (reloaded)Client-side MVC with Backbone.js (reloaded)
Client-side MVC with Backbone.js (reloaded)iloveigloo
 
D7 entities fields
D7 entities fieldsD7 entities fields
D7 entities fieldscyberswat
 
SPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuideSPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuideMark Rackley
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPOscar Merida
 
Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011
Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011
Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011camp_drupal_ua
 
Getting Started with DrupalGap
Getting Started with DrupalGapGetting Started with DrupalGap
Getting Started with DrupalGapAlex S
 

Similaire à State of search | drupalcon dublin (20)

SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery Essentials
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
 
Icinga 2009 at OSMC
Icinga 2009 at OSMCIcinga 2009 at OSMC
Icinga 2009 at OSMC
 
Web automation with #d8rules (European Drupal Days 2015)
Web automation with #d8rules (European Drupal Days 2015)Web automation with #d8rules (European Drupal Days 2015)
Web automation with #d8rules (European Drupal Days 2015)
 
Introduction to Solr
Introduction to SolrIntroduction to Solr
Introduction to Solr
 
Drupal 8. Search API. Facets. Customize / combine facets
Drupal 8. Search API. Facets. Customize / combine facetsDrupal 8. Search API. Facets. Customize / combine facets
Drupal 8. Search API. Facets. Customize / combine facets
 
Examiness hints and tips from the trenches
Examiness hints and tips from the trenchesExaminess hints and tips from the trenches
Examiness hints and tips from the trenches
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
Using Search API, Search API Solr and Facets in Drupal 8
Using Search API, Search API Solr and Facets in Drupal 8Using Search API, Search API Solr and Facets in Drupal 8
Using Search API, Search API Solr and Facets in Drupal 8
 
Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010Data Access Options in SharePoint 2010
Data Access Options in SharePoint 2010
 
SharePoint goes Microsoft Graph
SharePoint goes Microsoft GraphSharePoint goes Microsoft Graph
SharePoint goes Microsoft Graph
 
Client-side MVC with Backbone.js
Client-side MVC with Backbone.js Client-side MVC with Backbone.js
Client-side MVC with Backbone.js
 
Client-side MVC with Backbone.js (reloaded)
Client-side MVC with Backbone.js (reloaded)Client-side MVC with Backbone.js (reloaded)
Client-side MVC with Backbone.js (reloaded)
 
D7 entities fields
D7 entities fieldsD7 entities fields
D7 entities fields
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
SPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuideSPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuide
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
 
Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011
Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011
Andriy Podanenko.Drupal database api.DrupalCamp Kyiv 2011
 
Getting Started with DrupalGap
Getting Started with DrupalGapGetting Started with DrupalGap
Getting Started with DrupalGap
 

Dernier

Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 

Dernier (20)

Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 

State of search | drupalcon dublin

  • 1.
  • 2. Search API ecosystem in Drupal 8 Joris Vercammen | @borisson Site building
  • 3.
  • 5.
  • 6. • Search API • Search API Solr • Facets • More addon modules • Custom code
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. • Search API • Search API Solr • Facets • More addon modules • Custom code
  • 12. • Introduction • The big merge • Influences • Architecture • Demo • Open issues
  • 13. • Introduction • The big merge • Influences • Architecture • Demo • Open issues
  • 14. • 2010 (d7) • Generic and flexible search tools • Different data • Different search engines • Different types of user interfaces
  • 15. • Build Views of your entities including advanced features like • Keywords • Facets • Filters • Sorts
  • 16. • Introduction • The big merge • Influences • Architecture • Demo • Open issues
  • 17. • 3+ years in the making • Crowdfunding campaign • Google Summer of Code
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. • Introduction • The big merge • Influences • Architecture • Demo • Open issues
  • 23. drupal.org • Issue queues are powered with Search API Drupal 7 using the MySQL backend.
  • 25.
  • 26. • Introduction • The big merge • Influences • Architecture • Demo • Open issues
  • 27. • Search index • Search server • Search Display
  • 28. • modules • search_api • search_api_db • search_api_db_defaults
  • 29. • Introduction • The big merge • Influences • Architecture • Demo • Open issues
  • 30.
  • 33. • Introduction • The big merge • Influences • Architecture • Demo • Open issues
  • 34. • Hierarchical entities [#2625152] • Overhaul / Improve administration UI [#2387893] • Improve Fields UI [#2641388] • Config overrides for search entities [#2682369] • Fix test fails on php5.x on testbot [#2784849] • Documentation and tests
  • 35.
  • 36. • Search API • Search API Solr • Facets • More addon modules • Custom code
  • 41.
  • 42.
  • 43.
  • 44.
  • 46. • Search API • Search API Solr • Facets • More addon modules • Custom code
  • 51. • modules • Facets • Rest Facets • Core Search Facets
  • 53.
  • 56. • Implement pretty paths [#2677728] • Hierarchy [#2598304] • Bring facets up to date with Search API’s beta 1 [#2794745] • Create a date query type [#2611812] • Add a solid slider and range widget [#2755663] • Add current search block / search summary [#2735891] • Documentation + tests
  • 57. • Search API • Search API Solr • Facets • More addon modules • Custom code
  • 58. • Search API • Beta 2 • Search API Page • Alpha 11 • Search API Solr • Alpha 6 • Search API Sorts • Alpha 1 • Elastic Search • Development version • Search API Autocomplete • Development version • Search API attachments • Alpha 4 • Search API Exclude Entity • Development version
  • 59. • Facets • Alpha 5 • Facets pretty paths • Sandbox module available
  • 60. • Search API • Search API Solr • Facets • More addon modules • Custom code
  • 61.
  • 62. • Search API Processor. • Drupalsearch_apiProcessorProcessorInterface • Settings • “ | ignore”
  • 63. <?php
 
 namespace Drupalcustom_codePluginsearch_apiprocessor;
 
 use DrupalnodeNodeInterface;
 use Drupalsearch_apiIndexInterface;
 use Drupalsearch_apiProcessorProcessorPluginBase;
 
 /**
 * Excludes unpublished nodes from node indexes.
 *
 * @SearchApiProcessor(
 * id = "ignore_nodes",
 * label = @Translation("Ignore nodes for custom rules"),
 * description = @Translation("Don't index nodes according to our custom rules."),
 * stages = {
 * "preprocess_index" = -50
 * }
 * )
 */
 class IgnoreNodes extends ProcessorPluginBase {
 
 /**
 * {@inheritdoc}
 */
 public static function supportsIndex(IndexInterface $index) {
 // Make sure that this processor only works on processors that have nodes
 // indexed.
 foreach ($index->getDatasources() as $datasource) {
 if ($datasource->getEntityTypeId() == 'node') {
 return TRUE;
 }
 }
 return FALSE;
 }
 
 /**
 * {@inheritdoc}
 */
 public function preprocessIndexItems(array &$items) {
 foreach ($items as $item_id => $item) {
 $object = $item->getOriginalObject()->getValue();
 
 // Our nodes have " | ignore" in the title when they should be ignored and
 // not indexed, this is hardcoded information because of the import from
 // the external datasource.
 if ($object instanceof NodeInterface) {
 if (strpos($object->getTitle(), ' | ignore') !== FALSE) {
 unset($items[$item_id]);
 }
 }
 }
 }
 }
  • 64. <?php
 
 namespace Drupalcustom_codePluginsearch_apiprocessor;
 
 use DrupalnodeNodeInterface;
 use Drupalsearch_apiIndexInterface;
 use Drupalsearch_apiProcessorProcessorPluginBase;
 
 /**
 * Excludes unpublished nodes from node indexes.
 *
 * @SearchApiProcessor(
 * id = "ignore_nodes",
 * label = @Translation("Ignore nodes for custom rules"),
 * description = @Translation("Don't index nodes according to our custom rules."),
 * stages = {
 * "preprocess_index" = -50
 * }
 * )
 */
 class IgnoreNodes extends ProcessorPluginBase {
 
 /**
 * {@inheritdoc}
 */
 public static function supportsIndex(IndexInterface $index) {
 // Make sure that this processor only works on processors that have nodes
 // indexed.
 foreach ($index->getDatasources() as $datasource) {
 if ($datasource->getEntityTypeId() == 'node') {
 return TRUE;
 }
 }
 return FALSE;
 }
 
 /**
 * {@inheritdoc}
 */
 public function preprocessIndexItems(array &$items) {
 foreach ($items as $item_id => $item) {
 $object = $item->getOriginalObject()->getValue();
 
 // Our nodes have " | ignore" in the title when they should be ignored and
 // not indexed, this is hardcoded information because of the import from
 // the external datasource.
 if ($object instanceof NodeInterface) {
 if (strpos($object->getTitle(), ' | ignore') !== FALSE) {
 unset($items[$item_id]);
 }
 }
 }
 }
 }
  • 65. <?php
 
 namespace Drupalcustom_codePluginsearch_apiprocessor;
 
 use DrupalnodeNodeInterface;
 use Drupalsearch_apiIndexInterface;
 use Drupalsearch_apiProcessorProcessorPluginBase;
 
 /**
 * Excludes unpublished nodes from node indexes.
 *
 * @SearchApiProcessor(
 * id = "ignore_nodes",
 * label = @Translation("Ignore nodes for custom rules"),
 * description = @Translation("Don't index nodes according to our custom rules."),
 * stages = {
 * "preprocess_index" = -50
 * }
 * )
 */
 class IgnoreNodes extends ProcessorPluginBase {
 
 /**
 * {@inheritdoc}
 */
 public static function supportsIndex(IndexInterface $index) {
 // Make sure that this processor only works on processors that have nodes
 // indexed.
 foreach ($index->getDatasources() as $datasource) {
 if ($datasource->getEntityTypeId() == 'node') {
 return TRUE;
 }
 }
 return FALSE;
 }
 
 /**
 * {@inheritdoc}
 */
 public function preprocessIndexItems(array &$items) {
 foreach ($items as $item_id => $item) {
 $object = $item->getOriginalObject()->getValue();
 
 // Our nodes have " | ignore" in the title when they should be ignored and
 // not indexed, this is hardcoded information because of the import from
 // the external datasource.
 if ($object instanceof NodeInterface) {
 if (strpos($object->getTitle(), ' | ignore') !== FALSE) {
 unset($items[$item_id]);
 }
 }
 }
 }
 }
  • 66. <?php
 
 namespace Drupalcustom_codePluginsearch_apiprocessor;
 
 use DrupalnodeNodeInterface;
 use Drupalsearch_apiIndexInterface;
 use Drupalsearch_apiProcessorProcessorPluginBase;
 
 /**
 * Excludes unpublished nodes from node indexes.
 *
 * @SearchApiProcessor(
 * id = "ignore_nodes",
 * label = @Translation("Ignore nodes for custom rules"),
 * description = @Translation("Don't index nodes according to our custom rules."),
 * stages = {
 * "preprocess_index" = -50
 * }
 * )
 */
 class IgnoreNodes extends ProcessorPluginBase {
 
 /**
 * {@inheritdoc}
 */
 public static function supportsIndex(IndexInterface $index) {
 // Make sure that this processor only works on processors that have nodes
 // indexed.
 foreach ($index->getDatasources() as $datasource) {
 if ($datasource->getEntityTypeId() == 'node') {
 return TRUE;
 }
 }
 return FALSE;
 }
 
 /**
 * {@inheritdoc}
 */
 public function preprocessIndexItems(array &$items) {
 foreach ($items as $item_id => $item) {
 $object = $item->getOriginalObject()->getValue();
 
 // Our nodes have " | ignore" in the title when they should be ignored and
 // not indexed, this is hardcoded information because of the import from
 // the external datasource.
 if ($object instanceof NodeInterface) {
 if (strpos($object->getTitle(), ' | ignore') !== FALSE) {
 unset($items[$item_id]);
 }
 }
 }
 }
 }
  • 67. Should I use these now?
  • 68.
  • 70. JOIN US FOR CONTRIBUTION SPRINTS First Time Sprinter Workshop - 9:00-12:00 - Room Wicklow2A Mentored Core Sprint - 9:00-18:00 - Wicklow Hall 2B General Sprints - 9:00 - 18:00 - Wicklow Hall 2A
  • 71. Evaluate This Session THANK YOU! events.drupal.org/dublin2016/schedule WHAT DID YOU THINK?