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

Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 

Dernier (20)

Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 

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?