SlideShare a Scribd company logo
1 of 34
Download to read offline
Becoming 'Facet'-nated with
SearchAPI
Greg Monroe
SolarWind, Inc
Drupal Camp Ashville 2017
Why Use Search API?
●
Highly Customizable without Code
●
Google-’lite’ results
●
Results pages from views
●
Multiple indices with a wide range of processors
●
Facet (and other) Results Filtering
●
Can use high performance backends
●
Apache Solr
●
ElasticSearch (D7 only for now)
●
It’s an API so future search engines could be added
A Quick Word about
Apache Solr...
●
Is not Search API
●
Has been ‘rolled into’ D8 Search API
●
Modules for Apache Solr will not work with
Search API
Sites Showcase
●
Duke Health
( www.dukehealth.org )
●
Wesleyan Holiness Digital Library
( www.whdl.org )
●
SolarWinds MSP
( www.solarwindsmsp.com )
Basic Architecture
●
Search Engine
●
Actual Storage / Retrieval
●
Can use database, Solr, and others if Backend exists
●
Search Backend
●
Bridges the standardized Search API with native
Search Engine
●
Search Indices
●
Describes what is indexed and how it is searched
Search API Index Overview
Search API Index Search API
Backend
Datasource
Pre-Index
Processors
Field
Definitions
Search
Engine Server
Post Query
Processors
Views
Pre-Query
Processors
Index
Event
Views Filter
Query
Display
Results
Translates Core
API Services To
Native Search
Engine
Supplies
Search Engine
Specific
Features
Facets
Which Backend?
●
Solr
●
Designed as fast, full featured search engine
●
Clusterable Java/Jetty Based Webapp (requires
additional service/server)
●
Debugging/Enhancing has steep learning curve
●
DB Backend
●
Full featured and very usable
●
Fast to setup / Easy to debug SQL tables
●
Slower and not a scalable
Setup Overview
●
Install Modules / Backend Service
●
Configure Backend Server
●
Configure one or more indices
●
Datasources
●
Fields
●
Processors
●
Populate the indices
●
Create Results View
●
Add Facets
Modules and the like
●
Required Items
●
Search API ( www.drupal.org/project/search_api )
●
A Search Backend ( Solr / Database in D8 SAPI)
●
Search Engine Service for backend (Solr / Database)
●
Some useful optional Modules (D8)
●
Facets ( www.drupal.org/project/facets )
●
Autocomplete ( drupal.org/project/search_api_autocomplete )
●
Search API Exclude Entity( drupal.org/project/search_api_exclude_entity)
●
See Handbook for more ( drupal.org/node/1999262 )
Search API Configuration
Define A Search Server
3 is the recommended
min word length
Solr Backend will require
connection information
Index Planning
●
Decide what you want to index (e.g. blogs,
full site, and the like)
●
Look at the structure of what you want to
index (e.g. fields, entity references, etc.)
●
Decide if there are any items that should be
more important (e.g. words in title or author
name)
●
Think about the results display and what you
need there, including filtering (facets).
The Example Index
●
A Blog index
●
Blog posts have the following fields:
●
Title, body, tags, entity ref to an Author entity, featured
image, date published, status
●
Author names / Words in titles should be
more important
●
The results should have title, author, date,
featured image, highlighted excerpt, and be
filterable by category and month.
Define an Index (Datasources)
Select your Datasource(s)
for this index.
Note: Some may not have
the results you expect.
Define an Index
(Config Datasources)
Define an Index (Server)
Adding Fields
Quick way to
Index everything
All fields defined
for entity
Expandable to
referenced content
Some
Custom Fields
Make sure to click the Done Button!
Configuring Fields
Boost
Relevancy
based on
where found
Note: Fulltext
Index Processors
●
“Massage” data being stored or retrieved
●
Modify queries going to the backend
●
Supply custom ‘fields’
●
Can help shape the results
Select Processors
May cause problems if enabled
Processor Order
Processor Settings
Check these if you add
fields to the index.
new fields may not be
checked and cause
problems.
Populate your index
Index Views
●
Links index data with ‘datasource’ data (e.g.
index data can map to node fields)
●
Supplies a configurable fulltext search filter
●
Can filter by most indexed fields as well
●
Sortable by relevance or other information
●
Standard views formats, layouts, field features
are available
●
Excerpt field available with optional highlighting
Create Result View
Each index has
a view option
Fully configured view
Fulltext search filter
Sort by Relevance
Excerpt Results
Facets
●
Results Subseting not Views Filters
●
Shows only items in the current result set not all
possibilities
●
Supports a wide variety of widgets (drop
downs, dates, sliders, and the like)
●
Can show counts of related items
●
Linked to fields in index views
●
Placed on pages as blocks
Facets
Admin → Configuration → Search and Metadata → Facets
Facets need
at least
one search
view defined
Create A Facet
Search View to use
Field to filter by
Block Name
Select a widget
Tick to show number
of related results
Settings and Sorting
The Results
●
With some block placement
●
A custom Search form (could be HTML)
●
Some CSS TLC
Www.SolarWindsMSP.com/blog/search
Next Steps
●
Search optimization
●
Play with boosts, stop words, synomyms, and the like
●
Filtering out what you don’t want indexed
(search_api_exclude_entity)
●
●
Questions
?And thank you.
Google: Slideshare CGMonroe Search API
Drupal.org/u/cgmonroe

More Related Content

Similar to Becoming "Facet"-nated with Search API

How To Build your own Custom Search Engine
How To Build your own Custom Search EngineHow To Build your own Custom Search Engine
How To Build your own Custom Search EngineRicha Budhraja
 
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSSEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSDrupalCamp Kyiv
 
Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014Dimitar Danailov
 
Anatomy of Data Frame API : A deep dive into Spark Data Frame API
Anatomy of Data Frame API :  A deep dive into Spark Data Frame APIAnatomy of Data Frame API :  A deep dive into Spark Data Frame API
Anatomy of Data Frame API : A deep dive into Spark Data Frame APIdatamantra
 
Search Engines: Best Practice
Search Engines: Best PracticeSearch Engines: Best Practice
Search Engines: Best PracticeYuliya_Prach
 
Basic SharePoint search
Basic SharePoint searchBasic SharePoint search
Basic SharePoint searchToan Nguyen
 
SharePoint NYC search presentation
SharePoint NYC search presentationSharePoint NYC search presentation
SharePoint NYC search presentationjtbarrera
 
SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSPC Adriatics
 
Developing Search-driven application in SharePoint 2013
 Developing Search-driven application in SharePoint 2013  Developing Search-driven application in SharePoint 2013
Developing Search-driven application in SharePoint 2013 SPC Adriatics
 
Integrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptx
Integrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptxIntegrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptx
Integrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptxBegum Kaya
 
Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMrtpaem
 
Dont Reinvent the Wheel: Tips and Tricks for reuse in ADF
Dont Reinvent the Wheel: Tips and Tricks for reuse in ADFDont Reinvent the Wheel: Tips and Tricks for reuse in ADF
Dont Reinvent the Wheel: Tips and Tricks for reuse in ADFLuc Bors
 
Contributions: what they are and how to find them
Contributions: what they are and how to find themContributions: what they are and how to find them
Contributions: what they are and how to find themPedro Cambra
 
Top 7 JavaScript Data Grid Libraries
Top 7 JavaScript Data Grid LibrariesTop 7 JavaScript Data Grid Libraries
Top 7 JavaScript Data Grid LibrariesAlbiorix Technology
 
Netvu test slideshow
Netvu test slideshowNetvu test slideshow
Netvu test slideshowRyan Deeds
 
Integrating Google Search Appliance with Mura CMS
Integrating Google Search Appliance with Mura CMSIntegrating Google Search Appliance with Mura CMS
Integrating Google Search Appliance with Mura CMSMura CMS
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven DesignNETFest
 
Sumo Logic - Optimizing Your Search Experience (2016-08-17)
Sumo Logic - Optimizing Your Search Experience (2016-08-17)Sumo Logic - Optimizing Your Search Experience (2016-08-17)
Sumo Logic - Optimizing Your Search Experience (2016-08-17)Sumo Logic
 

Similar to Becoming "Facet"-nated with Search API (20)

How To Build your own Custom Search Engine
How To Build your own Custom Search EngineHow To Build your own Custom Search Engine
How To Build your own Custom Search Engine
 
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSSEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
 
Introducing Datawave
Introducing DatawaveIntroducing Datawave
Introducing Datawave
 
Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014Google app engine - Soft Uni 19.06.2014
Google app engine - Soft Uni 19.06.2014
 
Anatomy of Data Frame API : A deep dive into Spark Data Frame API
Anatomy of Data Frame API :  A deep dive into Spark Data Frame APIAnatomy of Data Frame API :  A deep dive into Spark Data Frame API
Anatomy of Data Frame API : A deep dive into Spark Data Frame API
 
Search Engines: Best Practice
Search Engines: Best PracticeSearch Engines: Best Practice
Search Engines: Best Practice
 
Basic SharePoint search
Basic SharePoint searchBasic SharePoint search
Basic SharePoint search
 
SharePoint NYC search presentation
SharePoint NYC search presentationSharePoint NYC search presentation
SharePoint NYC search presentation
 
SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based Solutions
 
Developing Search-driven application in SharePoint 2013
 Developing Search-driven application in SharePoint 2013  Developing Search-driven application in SharePoint 2013
Developing Search-driven application in SharePoint 2013
 
Integrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptx
Integrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptxIntegrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptx
Integrating Structured Data (to an SEO Plan) for the Win _ WTSWorkshop '23.pptx
 
Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEM
 
Dont Reinvent the Wheel: Tips and Tricks for reuse in ADF
Dont Reinvent the Wheel: Tips and Tricks for reuse in ADFDont Reinvent the Wheel: Tips and Tricks for reuse in ADF
Dont Reinvent the Wheel: Tips and Tricks for reuse in ADF
 
Don't Reinvent the Wheel - Tips and tricks for rease in Oracle ADF - Luc Bors
Don't Reinvent the Wheel - Tips and tricks for rease in Oracle ADF - Luc BorsDon't Reinvent the Wheel - Tips and tricks for rease in Oracle ADF - Luc Bors
Don't Reinvent the Wheel - Tips and tricks for rease in Oracle ADF - Luc Bors
 
Contributions: what they are and how to find them
Contributions: what they are and how to find themContributions: what they are and how to find them
Contributions: what they are and how to find them
 
Top 7 JavaScript Data Grid Libraries
Top 7 JavaScript Data Grid LibrariesTop 7 JavaScript Data Grid Libraries
Top 7 JavaScript Data Grid Libraries
 
Netvu test slideshow
Netvu test slideshowNetvu test slideshow
Netvu test slideshow
 
Integrating Google Search Appliance with Mura CMS
Integrating Google Search Appliance with Mura CMSIntegrating Google Search Appliance with Mura CMS
Integrating Google Search Appliance with Mura CMS
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
 
Sumo Logic - Optimizing Your Search Experience (2016-08-17)
Sumo Logic - Optimizing Your Search Experience (2016-08-17)Sumo Logic - Optimizing Your Search Experience (2016-08-17)
Sumo Logic - Optimizing Your Search Experience (2016-08-17)
 

More from cgmonroe

Structured SEO Data Overview and How To
Structured SEO Data Overview and How ToStructured SEO Data Overview and How To
Structured SEO Data Overview and How Tocgmonroe
 
Structured SEO Data: An overview and how to for Drupal
Structured SEO Data:  An overview and how to for DrupalStructured SEO Data:  An overview and how to for Drupal
Structured SEO Data: An overview and how to for Drupalcgmonroe
 
Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)
Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)
Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)cgmonroe
 
Tips on Securing Drupal Sites
Tips on Securing Drupal SitesTips on Securing Drupal Sites
Tips on Securing Drupal Sitescgmonroe
 
Intro to drupal module internals asheville
Intro to drupal module internals ashevilleIntro to drupal module internals asheville
Intro to drupal module internals ashevillecgmonroe
 
Using Content Delivery Networks with Drupal
Using Content Delivery Networks with DrupalUsing Content Delivery Networks with Drupal
Using Content Delivery Networks with Drupalcgmonroe
 
Solr facets and custom indices
Solr facets and custom indicesSolr facets and custom indices
Solr facets and custom indicescgmonroe
 
HTML Purifier, WYSIWYG, and TinyMCE
HTML Purifier, WYSIWYG, and TinyMCEHTML Purifier, WYSIWYG, and TinyMCE
HTML Purifier, WYSIWYG, and TinyMCEcgmonroe
 
Using the Features API
Using the Features APIUsing the Features API
Using the Features APIcgmonroe
 
The Drupal Strongarm Module - Tips and Tricks.
The Drupal Strongarm Module - Tips and Tricks.The Drupal Strongarm Module - Tips and Tricks.
The Drupal Strongarm Module - Tips and Tricks.cgmonroe
 
Intro to CSS Selectors in Drupal
Intro to CSS Selectors in DrupalIntro to CSS Selectors in Drupal
Intro to CSS Selectors in Drupalcgmonroe
 
Drupal Workflow Concepts
Drupal Workflow ConceptsDrupal Workflow Concepts
Drupal Workflow Conceptscgmonroe
 
TriDUG WebFM Presentation
TriDUG WebFM PresentationTriDUG WebFM Presentation
TriDUG WebFM Presentationcgmonroe
 

More from cgmonroe (13)

Structured SEO Data Overview and How To
Structured SEO Data Overview and How ToStructured SEO Data Overview and How To
Structured SEO Data Overview and How To
 
Structured SEO Data: An overview and how to for Drupal
Structured SEO Data:  An overview and how to for DrupalStructured SEO Data:  An overview and how to for Drupal
Structured SEO Data: An overview and how to for Drupal
 
Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)
Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)
Tips on Securing Drupal Sites - DrupalCamp Atlanta (DCA)
 
Tips on Securing Drupal Sites
Tips on Securing Drupal SitesTips on Securing Drupal Sites
Tips on Securing Drupal Sites
 
Intro to drupal module internals asheville
Intro to drupal module internals ashevilleIntro to drupal module internals asheville
Intro to drupal module internals asheville
 
Using Content Delivery Networks with Drupal
Using Content Delivery Networks with DrupalUsing Content Delivery Networks with Drupal
Using Content Delivery Networks with Drupal
 
Solr facets and custom indices
Solr facets and custom indicesSolr facets and custom indices
Solr facets and custom indices
 
HTML Purifier, WYSIWYG, and TinyMCE
HTML Purifier, WYSIWYG, and TinyMCEHTML Purifier, WYSIWYG, and TinyMCE
HTML Purifier, WYSIWYG, and TinyMCE
 
Using the Features API
Using the Features APIUsing the Features API
Using the Features API
 
The Drupal Strongarm Module - Tips and Tricks.
The Drupal Strongarm Module - Tips and Tricks.The Drupal Strongarm Module - Tips and Tricks.
The Drupal Strongarm Module - Tips and Tricks.
 
Intro to CSS Selectors in Drupal
Intro to CSS Selectors in DrupalIntro to CSS Selectors in Drupal
Intro to CSS Selectors in Drupal
 
Drupal Workflow Concepts
Drupal Workflow ConceptsDrupal Workflow Concepts
Drupal Workflow Concepts
 
TriDUG WebFM Presentation
TriDUG WebFM PresentationTriDUG WebFM Presentation
TriDUG WebFM Presentation
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 

Becoming "Facet"-nated with Search API

  • 1. Becoming 'Facet'-nated with SearchAPI Greg Monroe SolarWind, Inc Drupal Camp Ashville 2017
  • 2. Why Use Search API? ● Highly Customizable without Code ● Google-’lite’ results ● Results pages from views ● Multiple indices with a wide range of processors ● Facet (and other) Results Filtering ● Can use high performance backends ● Apache Solr ● ElasticSearch (D7 only for now) ● It’s an API so future search engines could be added
  • 3. A Quick Word about Apache Solr... ● Is not Search API ● Has been ‘rolled into’ D8 Search API ● Modules for Apache Solr will not work with Search API
  • 4. Sites Showcase ● Duke Health ( www.dukehealth.org ) ● Wesleyan Holiness Digital Library ( www.whdl.org ) ● SolarWinds MSP ( www.solarwindsmsp.com )
  • 5. Basic Architecture ● Search Engine ● Actual Storage / Retrieval ● Can use database, Solr, and others if Backend exists ● Search Backend ● Bridges the standardized Search API with native Search Engine ● Search Indices ● Describes what is indexed and how it is searched
  • 6. Search API Index Overview Search API Index Search API Backend Datasource Pre-Index Processors Field Definitions Search Engine Server Post Query Processors Views Pre-Query Processors Index Event Views Filter Query Display Results Translates Core API Services To Native Search Engine Supplies Search Engine Specific Features Facets
  • 7. Which Backend? ● Solr ● Designed as fast, full featured search engine ● Clusterable Java/Jetty Based Webapp (requires additional service/server) ● Debugging/Enhancing has steep learning curve ● DB Backend ● Full featured and very usable ● Fast to setup / Easy to debug SQL tables ● Slower and not a scalable
  • 8. Setup Overview ● Install Modules / Backend Service ● Configure Backend Server ● Configure one or more indices ● Datasources ● Fields ● Processors ● Populate the indices ● Create Results View ● Add Facets
  • 9. Modules and the like ● Required Items ● Search API ( www.drupal.org/project/search_api ) ● A Search Backend ( Solr / Database in D8 SAPI) ● Search Engine Service for backend (Solr / Database) ● Some useful optional Modules (D8) ● Facets ( www.drupal.org/project/facets ) ● Autocomplete ( drupal.org/project/search_api_autocomplete ) ● Search API Exclude Entity( drupal.org/project/search_api_exclude_entity) ● See Handbook for more ( drupal.org/node/1999262 )
  • 11. Define A Search Server 3 is the recommended min word length Solr Backend will require connection information
  • 12. Index Planning ● Decide what you want to index (e.g. blogs, full site, and the like) ● Look at the structure of what you want to index (e.g. fields, entity references, etc.) ● Decide if there are any items that should be more important (e.g. words in title or author name) ● Think about the results display and what you need there, including filtering (facets).
  • 13. The Example Index ● A Blog index ● Blog posts have the following fields: ● Title, body, tags, entity ref to an Author entity, featured image, date published, status ● Author names / Words in titles should be more important ● The results should have title, author, date, featured image, highlighted excerpt, and be filterable by category and month.
  • 14. Define an Index (Datasources) Select your Datasource(s) for this index. Note: Some may not have the results you expect.
  • 15. Define an Index (Config Datasources)
  • 16. Define an Index (Server)
  • 17. Adding Fields Quick way to Index everything All fields defined for entity Expandable to referenced content Some Custom Fields Make sure to click the Done Button!
  • 19. Index Processors ● “Massage” data being stored or retrieved ● Modify queries going to the backend ● Supply custom ‘fields’ ● Can help shape the results
  • 20. Select Processors May cause problems if enabled
  • 22. Processor Settings Check these if you add fields to the index. new fields may not be checked and cause problems.
  • 24. Index Views ● Links index data with ‘datasource’ data (e.g. index data can map to node fields) ● Supplies a configurable fulltext search filter ● Can filter by most indexed fields as well ● Sortable by relevance or other information ● Standard views formats, layouts, field features are available ● Excerpt field available with optional highlighting
  • 25. Create Result View Each index has a view option
  • 26. Fully configured view Fulltext search filter Sort by Relevance Excerpt Results
  • 27. Facets ● Results Subseting not Views Filters ● Shows only items in the current result set not all possibilities ● Supports a wide variety of widgets (drop downs, dates, sliders, and the like) ● Can show counts of related items ● Linked to fields in index views ● Placed on pages as blocks
  • 28. Facets Admin → Configuration → Search and Metadata → Facets Facets need at least one search view defined
  • 29. Create A Facet Search View to use Field to filter by Block Name
  • 30. Select a widget Tick to show number of related results
  • 32. The Results ● With some block placement ● A custom Search form (could be HTML) ● Some CSS TLC Www.SolarWindsMSP.com/blog/search
  • 33. Next Steps ● Search optimization ● Play with boosts, stop words, synomyms, and the like ● Filtering out what you don’t want indexed (search_api_exclude_entity) ● ●
  • 34. Questions ?And thank you. Google: Slideshare CGMonroe Search API Drupal.org/u/cgmonroe