SlideShare a Scribd company logo
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 Engine
Richa 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 SOLUTIONS
DrupalCamp Kyiv
 
Introducing Datawave
Introducing DatawaveIntroducing Datawave
Introducing Datawave
Accumulo Summit
 
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
Dimitar 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 API
datamantra
 
Search Engines: Best Practice
Search Engines: Best PracticeSearch Engines: Best Practice
Search Engines: Best Practice
Yuliya_Prach
 
Basic SharePoint search
Basic SharePoint searchBasic SharePoint search
Basic SharePoint search
Toan Nguyen
 
SharePoint NYC search presentation
SharePoint NYC search presentationSharePoint NYC search presentation
SharePoint NYC search presentation
jtbarrera
 
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
 
SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based Solutions
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.pptx
Begum Kaya
 
Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEM
rtpaem
 
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
Luc Bors
 
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
Getting value from IoT, Integration and Data Analytics
 
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
Pedro Cambra
 
Top 7 JavaScript Data Grid Libraries
Top 7 JavaScript Data Grid LibrariesTop 7 JavaScript Data Grid Libraries
Top 7 JavaScript Data Grid Libraries
Albiorix Technology
 
Netvu test slideshow
Netvu test slideshowNetvu test slideshow
Netvu test slideshow
Ryan 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 CMS
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
NETFest
 
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
 
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
 
SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based Solutions
 
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 To
cgmonroe
 
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
cgmonroe
 
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 Sites
cgmonroe
 
Intro to drupal module internals asheville
Intro to drupal module internals ashevilleIntro to drupal module internals asheville
Intro to drupal module internals asheville
cgmonroe
 
Using Content Delivery Networks with Drupal
Using Content Delivery Networks with DrupalUsing Content Delivery Networks with Drupal
Using Content Delivery Networks with Drupal
cgmonroe
 
Solr facets and custom indices
Solr facets and custom indicesSolr facets and custom indices
Solr facets and custom indices
cgmonroe
 
HTML Purifier, WYSIWYG, and TinyMCE
HTML Purifier, WYSIWYG, and TinyMCEHTML Purifier, WYSIWYG, and TinyMCE
HTML Purifier, WYSIWYG, and TinyMCE
cgmonroe
 
Using the Features API
Using the Features APIUsing the Features API
Using the Features API
cgmonroe
 
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 Drupal
cgmonroe
 
Drupal Workflow Concepts
Drupal Workflow ConceptsDrupal Workflow Concepts
Drupal Workflow Concepts
cgmonroe
 
TriDUG WebFM Presentation
TriDUG WebFM PresentationTriDUG WebFM Presentation
TriDUG WebFM Presentation
cgmonroe
 

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

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 

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