SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
May 10, 2012




Things Made Easy: One Click
CMS Integration with Solr &
Drupal
                 Peter M. Wolanin, Ph.D.
           Momentum Specialist (principal engineer), Acquia, Inc.
                 Drupal contributor drupal.org/user/49851
     co-maintainer of the Drupal Apache Solr Search Integration module
Key Questions to Be Answered
•   What is Drupal?
•   What Apache Solr features are integrated with
    Drupal?
•   Why is Drupal plus Apache Solr is better than
    starting from scratch?
•   What elements of the search can you
    configure in the UI without code?
Why Are You Here?
•   You are starting a new website project?
•   You are wondering how hard it is to actually
    integrate Apache Solr with a website?
•   You already use Drupal but not with Apache
    Solr?
•   You like things that are easy yet powerful?
Drupal: Web Application Framework +
    CMS == Social Publishing Platform
Drupal “… is as much a Social Software platform
as it is a web content management system.”
                                                         content        users

CMS Watch, The Web CMS Report 2009
                                                                                     blogs /
                                              workflow                                 wikis




                                                                                            forums /
                                      taxonomy                                             comments
                                                        Content         Social
                                                         Mgmt        Software
                                                        Systems          Tools                  social
                                     semantic web                                              ranking




                                                 RSS                              social tagging



                                                                         social
                                                         analytics     networks
Drupal + Solr Provides Immediate
Access to Rich Search Features
 Dynamic content requires dynamic navigation -
 which is provided by an effective search
 Search facets mean no dead ends
 Solr provides better keyword relevancy in results
 Much faster searches for sites with lots of content
 By avoiding database queries, Drupal with Solr
 scales better
DEMO:
A Drupal 7 partial copy of the conference
   site with Apache Solr integration

        http://youtu.be/yY6kma_ViWc
Things Made Easy: One Click CMS Integration with Solr & Drupal
Drupal Has User Accounts, Roles
& Permissions
  Define custom roles
  Set granular access
  controls by role
  Configure user
  behavior:
– Registration
– Email
– Profiles
– Pictures
Drupal Modules Add
Functionality
 “There’s a module for that”
 More than 4100 Drupal 7
 community modules
 Often controlled by role-
 based permissions
 Drupal core and modules
 are GPL v2+, and have a
 huge, active community
Drupal is Written in PHP, Which
Makes for Easy Customization
 The Drupal architecture encourages and provides
 many avenues for customization by writing
 modules but not patching Drupal core
 Drupal has a huge community of users.
 Approximately 10,000 sites report to Drupal.org
 that they use the Apache Solr Search Integration
 module.
Drupal Adapts toYou!!
Drupal Entities are Content + Data
  Nodes are the basic entity
  used for text content
                               Node 1   Node 2   Node 3
  The entity system is
  extensible - can represent
                               Node 4   Node 5   Node 6
  any data
  Examples of data stored
  within Drupal entities       Node 7   Node 8   Node 9

– Text
– geographic location
– Node reference
Entity Types are Enriched With
User-configurable Data Fields
  Define new data fields on
  a node using the Field API
  module.
– Text, images, integers, date,
  reference, etc
  Flexible and configurable
  in the UI
  No programming required
  (many existing modules)
Things Made Easy: One Click CMS Integration with Solr & Drupal
A Strong Framework for
Content Classification
Core taxonomy system
Modules provide
taxonomy-based
appearance, access
control
Standard input options
include free tagging,
flat-controlled, and
hierarchical-controlled
Drupal + Solr Search for Business,
 Government and NGOs
                                                   http://www.mattel.com/search/
                                                          apachesolr_search/
                                                               https://www.eff.org/search/site/


                                                  http://www.poly.edu/search/apachesolr_search/
                                                       http://www.whitehouse.gov/search/site/


                                          http://opensource.com/search/apachesolr_search/
  https://www.ethicshare.org/publications/        http://www.nypl.org/search/apachesolr_search/
                http://www.mylifetime.com/community/search/apachesolr_search/
                                                          http://www.emporia.edu/search/site/
http://www.restorethegulf.gov/search/apachesolr_search/
                                         http://www.hrw.org/en/search/apachesolr_search/
Drupal Has Already Solved Many
Solr Integration Challenges
 The most important - content indexing.
 Facets, sorting, and highlighting of results.
 Immediate integration with the More Like This
 and spell-check handlers.
 Included sub-module integrates content access
 permissions by indexing to and filtering Solr
 results based on the current user.
Easy Content Recommendation!
 Uses the MLT handler
 Picks fields from the currently viewed node
The Module Has a Pipeline for
Indexing Drupal Content to Solr
  Drupal entities are processed into one (or more)
  document objects. Each document object is
  converted to XML and sent to Solr.
Node object      Document object               XML string
                  entity_type      <doc>

   title              label         <field
                                    <field
                                             name="entity_type">node</field>
                                             name="label">Hello Drupal</field>
                                    <field   name="entity_id">101</field>
    nid             entity_id       <field
                                   </doc>
                                             name="bundle">session</field>

   type     Drupal bundle
           functions
Entity Meta-data Gives
Automatic Facets!
 Content types
 Taxonomy terms per
 vocabulary
 Content authors
 Posted and modified dates
 Text and numbers selected
 via select list/radios/check
 boxes
Drupal Modules Implement hooks
to Control Indexing and Display
HOOK_apachesolr_index_document_build($document,
$entity, $entity_type, $env_id)


 By creating a Drupal module (in PHP), you can
 implement module and theme “hooks” to extend or
 alter Drupal behavior.
 Change or replace the data normally indexed.
 Modify the search results and their appearance.
Updates to an Entity or Related
Meta-data Cause Reindexing
 Drupal entities are indexed during Drupal cron
 (typically invoked via *nix cron).
 By using a specialized tracking table, content
 can automatically be queued for reindex when
 changed, and subsets of content can potentially
 be sent to different Solr indexes.
 Entities include many ID-based reference fields
 (e.g. the User ID of the author). Changes to the
 referenced data is also watched.
Indexing Tracking Tables Maintain
Order
+-------------+-----------+-------------+--------+------------+
| entity_type | entity_id | bundle      | status | changed    |
+-------------+-----------+-------------+--------+------------+
| node        |        36 | session     |      1 | 1336520756 |
| node        |        37 | session     |      1 | 1336510489 |
| node        |        38 | session     |      1 | 1336510456 |
| node        |        39 | session     |      1 | 1336510456 |
| node        |        40 | speaker_bio |      1 | 1336510456 |
+-------------+-----------+-------------+--------+------------+

   When a node is updated, the “changed” timestamp
   is updated.
   The indexing pipeline tracks the largest timestamp
   and entity_id which has been indexed.
Example: Taxonomy Term
Classifying a Node is Changed
       Grapefruit            Citrus fruit
function apachesolr_taxonomy_term_update($term)

  All nodes classified with this terms are queued
  to be re-indexed by setting the “changed”
  column to the current time.
  Thus you will correctly match ‘Citrus’ instead of
  ‘Grapefruit’ for those documents.
When Unpublished, Content is
Purged
 Drupal core includes a simple editorial workflow
 where content may be toggled between
 published (visible) and unpublished
 (incomplete, removed, spam, etc).
 The module immediately removes content from
 the index when unpublished, and also tracks it
 for future removal in case the Solr server is
 unavailable.
Search Using Dismax Query
Parsing & Boosting Features
 Dynamic fields in schema.xml used to index
 standard and custom entity data fields
 Dismax (or EDismax) handler used for keyword
 searching across multiple fields and per-field boosts
 Query-time boosting options available in the UI
A Query Object Is Used to
Prepare and Run Searches

 HOOK_apachesolr_query_prepare($query)


 $query->setParam('hl.fl', $field);
 $keys = $query->getParam('q');
 $response = $query->search();
More Modules Available to
Add More Features
A few examples:
 ApacheSolr Attachments
 Apache Solr Multisite Search
 Apache Solr Organic Groups Integration
 Apachesolr User indexing
 Apachesolr Commerce
To Wrap Up !
 Drupal has extensive Apache Solr integration
 already, and is highly customizable.
 The Drupal platform is widely adopted, and the
 Drupal community drives rapid innovation.
 Acquia provides Enterprise Drupal support and a
 network of partners.
 Acquia includes a secure, hosted Solr index with
 every support subscription.
Did I Answer These?

•   What is Drupal?
•   What Apache Solr features are integrated with
    Drupal?
•   Why is Drupal plus Apache Solr is better than
    starting from scratch?
•   What elements of the search can you
    configure in the UI without code?
Other PHP Integration Tools

•   http://www.solarium-project.org/
•   http://php.net/solr
    http://pecl.php.net/package/solr
•   http://code.google.com/p/solr-php-client/

Caveat: don’t use serialized PHP response format in
      a custom integration - use JSON writer.
Acquia is Hiring!

•   Do you love Drupal, Solr, the LAMP stack,
    DevOps or anything related, and working at a
    fast-growing and successful startup?
•   Boston and Portland area U.S. offices.
•   Some remote opportunities as well.
•   Come talk to me!
    peter.wolanin@acquia.com
    pwolanin in IRC #drupal or #solr
Resources ... Questions? !
  http://drupal.org/project/apachesolr
  http://drupal.org/project/apachesolr_attachments
  http://archive.org/details/
  drupalconchi_day2_attain_apache_solr_coding_c
  hops
  http://www.acquia.com/tags/apachesolr
  http://groups.drupal.org/lucene-nutch-and-solr

Contenu connexe

Tendances

SharePoint 2010 Tools in Visual Studio 2010
SharePoint 2010 Tools in Visual Studio 2010SharePoint 2010 Tools in Visual Studio 2010
SharePoint 2010 Tools in Visual Studio 2010Becky Bertram
 
Spring Basics
Spring BasicsSpring Basics
Spring BasicsEmprovise
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Lucidworks
 
SharePoint 2010 User Profile Sync
SharePoint 2010 User Profile SyncSharePoint 2010 User Profile Sync
SharePoint 2010 User Profile SyncNilesh Mehta
 
KMWorld SharePoint 2010-Admin 101
KMWorld SharePoint 2010-Admin 101KMWorld SharePoint 2010-Admin 101
KMWorld SharePoint 2010-Admin 101Chris McNulty
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
CMS Solution Benefits
CMS Solution BenefitsCMS Solution Benefits
CMS Solution BenefitsInfosys
 
Introduction to the SharePoint 2013 User Profile Service
Introduction to the SharePoint 2013 User Profile ServiceIntroduction to the SharePoint 2013 User Profile Service
Introduction to the SharePoint 2013 User Profile ServiceRegroove
 
Introduction to the sharepoint 2013 userprofile service By Quontra
Introduction to the sharepoint 2013 userprofile service By QuontraIntroduction to the sharepoint 2013 userprofile service By Quontra
Introduction to the sharepoint 2013 userprofile service By QuontraQUONTRASOLUTIONS
 
SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...
SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...
SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...Ivan Sanders
 
SQLUG event: An evening in the cloud: the old, the new and the big
 SQLUG event: An evening in the cloud: the old, the new and the big  SQLUG event: An evening in the cloud: the old, the new and the big
SQLUG event: An evening in the cloud: the old, the new and the big Mike Martin
 
Developing and Deploying Custom Branding Solutions in SharePoint 2010
Developing and Deploying Custom Branding Solutions in SharePoint 2010Developing and Deploying Custom Branding Solutions in SharePoint 2010
Developing and Deploying Custom Branding Solutions in SharePoint 2010jhendrix88
 
SharePoint Saturday Belgium 2014 Creating product centric sites using product...
SharePoint Saturday Belgium 2014 Creating product centric sites using product...SharePoint Saturday Belgium 2014 Creating product centric sites using product...
SharePoint Saturday Belgium 2014 Creating product centric sites using product...BIWUG
 
Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...
Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...
Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...SPTechCon
 
Migrating to Drupal: Open Source Library Intranets
Migrating to Drupal: Open Source Library IntranetsMigrating to Drupal: Open Source Library Intranets
Migrating to Drupal: Open Source Library IntranetsNina McHale
 
SharePoint 2010 for Business, Intranet Leadership Forum
SharePoint 2010 for Business, Intranet Leadership ForumSharePoint 2010 for Business, Intranet Leadership Forum
SharePoint 2010 for Business, Intranet Leadership ForumKathy Hughes
 

Tendances (18)

SharePoint 2010 Tools in Visual Studio 2010
SharePoint 2010 Tools in Visual Studio 2010SharePoint 2010 Tools in Visual Studio 2010
SharePoint 2010 Tools in Visual Studio 2010
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
 
SharePoint 2010 User Profile Sync
SharePoint 2010 User Profile SyncSharePoint 2010 User Profile Sync
SharePoint 2010 User Profile Sync
 
KMWorld SharePoint 2010-Admin 101
KMWorld SharePoint 2010-Admin 101KMWorld SharePoint 2010-Admin 101
KMWorld SharePoint 2010-Admin 101
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
CMS Solution Benefits
CMS Solution BenefitsCMS Solution Benefits
CMS Solution Benefits
 
What's new for Developers in SharePoint 2013
What's new for Developers in SharePoint 2013What's new for Developers in SharePoint 2013
What's new for Developers in SharePoint 2013
 
Introduction to the SharePoint 2013 User Profile Service
Introduction to the SharePoint 2013 User Profile ServiceIntroduction to the SharePoint 2013 User Profile Service
Introduction to the SharePoint 2013 User Profile Service
 
Introduction to the sharepoint 2013 userprofile service By Quontra
Introduction to the sharepoint 2013 userprofile service By QuontraIntroduction to the sharepoint 2013 userprofile service By Quontra
Introduction to the sharepoint 2013 userprofile service By Quontra
 
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
(28.04) MOSSCA Invita - Bienvenidos a la casa de Sharepoint - Visión técnica
 
SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...
SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...
SharePoint Intelligence Extending Share Point Designer 2010 Workflows With Cu...
 
SQLUG event: An evening in the cloud: the old, the new and the big
 SQLUG event: An evening in the cloud: the old, the new and the big  SQLUG event: An evening in the cloud: the old, the new and the big
SQLUG event: An evening in the cloud: the old, the new and the big
 
Developing and Deploying Custom Branding Solutions in SharePoint 2010
Developing and Deploying Custom Branding Solutions in SharePoint 2010Developing and Deploying Custom Branding Solutions in SharePoint 2010
Developing and Deploying Custom Branding Solutions in SharePoint 2010
 
SharePoint Saturday Belgium 2014 Creating product centric sites using product...
SharePoint Saturday Belgium 2014 Creating product centric sites using product...SharePoint Saturday Belgium 2014 Creating product centric sites using product...
SharePoint Saturday Belgium 2014 Creating product centric sites using product...
 
Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...
Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...
Part II: SharePoint 2013 Administration by Todd Klindt and Shane Young - SPTe...
 
Migrating to Drupal: Open Source Library Intranets
Migrating to Drupal: Open Source Library IntranetsMigrating to Drupal: Open Source Library Intranets
Migrating to Drupal: Open Source Library Intranets
 
SharePoint 2010 for Business, Intranet Leadership Forum
SharePoint 2010 for Business, Intranet Leadership ForumSharePoint 2010 for Business, Intranet Leadership Forum
SharePoint 2010 for Business, Intranet Leadership Forum
 

En vedette

Single Page Applications in Drupal
Single Page Applications in DrupalSingle Page Applications in Drupal
Single Page Applications in DrupalChris Tankersley
 
Making Sense of Twig
Making Sense of TwigMaking Sense of Twig
Making Sense of TwigBrandon Kelly
 
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015Dropsolid
 
Drupal 8: Entities
Drupal 8: EntitiesDrupal 8: Entities
Drupal 8: Entitiesdrubb
 
Drupal 8 templating with twig
Drupal 8 templating with twigDrupal 8 templating with twig
Drupal 8 templating with twigTaras Omelianenko
 
Drupal 8: TWIG Template Engine
Drupal 8:  TWIG Template EngineDrupal 8:  TWIG Template Engine
Drupal 8: TWIG Template Enginedrubb
 
Drupal 8: Theming
Drupal 8: ThemingDrupal 8: Theming
Drupal 8: Themingdrubb
 
Intro to Apache Solr for Drupal
Intro to Apache Solr for DrupalIntro to Apache Solr for Drupal
Intro to Apache Solr for DrupalChris Caple
 
Drupal 8 + Elasticsearch + Docker
Drupal 8 + Elasticsearch + DockerDrupal 8 + Elasticsearch + Docker
Drupal 8 + Elasticsearch + DockerRoald Umandal
 
Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8Brian Ward
 

En vedette (10)

Single Page Applications in Drupal
Single Page Applications in DrupalSingle Page Applications in Drupal
Single Page Applications in Drupal
 
Making Sense of Twig
Making Sense of TwigMaking Sense of Twig
Making Sense of Twig
 
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
 
Drupal 8: Entities
Drupal 8: EntitiesDrupal 8: Entities
Drupal 8: Entities
 
Drupal 8 templating with twig
Drupal 8 templating with twigDrupal 8 templating with twig
Drupal 8 templating with twig
 
Drupal 8: TWIG Template Engine
Drupal 8:  TWIG Template EngineDrupal 8:  TWIG Template Engine
Drupal 8: TWIG Template Engine
 
Drupal 8: Theming
Drupal 8: ThemingDrupal 8: Theming
Drupal 8: Theming
 
Intro to Apache Solr for Drupal
Intro to Apache Solr for DrupalIntro to Apache Solr for Drupal
Intro to Apache Solr for Drupal
 
Drupal 8 + Elasticsearch + Docker
Drupal 8 + Elasticsearch + DockerDrupal 8 + Elasticsearch + Docker
Drupal 8 + Elasticsearch + Docker
 
Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8
 

Similaire à Things Made Easy: One Click CMS Integration with Solr & Drupal

Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your SiteDrupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Sitenyccamp
 
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...sbclapp
 
Ramp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache SolrRamp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache Solrlucenerevolution
 
Open Source Content Management Systems
Open Source Content Management SystemsOpen Source Content Management Systems
Open Source Content Management SystemsMatthew Turland
 
Drupal8 corporate training in Hyderabad
Drupal8 corporate training in HyderabadDrupal8 corporate training in Hyderabad
Drupal8 corporate training in Hyderabadphp2ranjan
 
JIIT PORTAL based on Drupal
JIIT PORTAL based on DrupalJIIT PORTAL based on Drupal
JIIT PORTAL based on DrupalPrashant Saini
 
one|content : joomla on steroids
one|content : joomla on steroidsone|content : joomla on steroids
one|content : joomla on steroidsPaul Delbar
 
Choosing an Open Source CMS
Choosing an Open Source CMSChoosing an Open Source CMS
Choosing an Open Source CMSPhase2
 
Drupal Training | Online Drupal Training
Drupal Training | Online Drupal TrainingDrupal Training | Online Drupal Training
Drupal Training | Online Drupal TrainingShaheel Khan
 
Building University Websites with the Drupal Content Management System
Building University Websites with the Drupal Content Management SystemBuilding University Websites with the Drupal Content Management System
Building University Websites with the Drupal Content Management SystemMark Jarrell
 
Introduction to Drupal (2011, DiWD)
Introduction to Drupal (2011, DiWD)Introduction to Drupal (2011, DiWD)
Introduction to Drupal (2011, DiWD)eojthebrave
 
Diwd intro-presentation
Diwd intro-presentationDiwd intro-presentation
Diwd intro-presentationeojthebrave
 
Vskills certified open source cms drupal professional sample material
Vskills certified open source cms drupal professional sample materialVskills certified open source cms drupal professional sample material
Vskills certified open source cms drupal professional sample materialVskills
 
Online Drupal Training Syllabus
Online Drupal Training SyllabusOnline Drupal Training Syllabus
Online Drupal Training Syllabusvibrantuser
 
How to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured ContentHow to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured ContentAcquia
 
Usefulplatforms
UsefulplatformsUsefulplatforms
Usefulplatformswaqas_arif
 
Drupal overview
Drupal overviewDrupal overview
Drupal overviewchintan4u
 

Similaire à Things Made Easy: One Click CMS Integration with Solr & Drupal (20)

Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your SiteDrupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
 
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
Drupal is from Mars, Wordpress is from Venus: Finding your library's CMS soul...
 
Ramp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache SolrRamp Up Your Web Experiences Using Drupal and Apache Solr
Ramp Up Your Web Experiences Using Drupal and Apache Solr
 
Open Source Content Management Systems
Open Source Content Management SystemsOpen Source Content Management Systems
Open Source Content Management Systems
 
Drupal8 corporate training in Hyderabad
Drupal8 corporate training in HyderabadDrupal8 corporate training in Hyderabad
Drupal8 corporate training in Hyderabad
 
JIIT PORTAL based on Drupal
JIIT PORTAL based on DrupalJIIT PORTAL based on Drupal
JIIT PORTAL based on Drupal
 
one|content : joomla on steroids
one|content : joomla on steroidsone|content : joomla on steroids
one|content : joomla on steroids
 
Choosing an Open Source CMS
Choosing an Open Source CMSChoosing an Open Source CMS
Choosing an Open Source CMS
 
Drupal Training | Online Drupal Training
Drupal Training | Online Drupal TrainingDrupal Training | Online Drupal Training
Drupal Training | Online Drupal Training
 
Building University Websites with the Drupal Content Management System
Building University Websites with the Drupal Content Management SystemBuilding University Websites with the Drupal Content Management System
Building University Websites with the Drupal Content Management System
 
72d5drupal
72d5drupal72d5drupal
72d5drupal
 
Introduction to Drupal (2011, DiWD)
Introduction to Drupal (2011, DiWD)Introduction to Drupal (2011, DiWD)
Introduction to Drupal (2011, DiWD)
 
Diwd intro-presentation
Diwd intro-presentationDiwd intro-presentation
Diwd intro-presentation
 
Vskills certified open source cms drupal professional sample material
Vskills certified open source cms drupal professional sample materialVskills certified open source cms drupal professional sample material
Vskills certified open source cms drupal professional sample material
 
Online Drupal Training Syllabus
Online Drupal Training SyllabusOnline Drupal Training Syllabus
Online Drupal Training Syllabus
 
How to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured ContentHow to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured Content
 
Usefulplatforms
UsefulplatformsUsefulplatforms
Usefulplatforms
 
Drupal Webinar
Drupal WebinarDrupal Webinar
Drupal Webinar
 
Drupal overview
Drupal overviewDrupal overview
Drupal overview
 
The Drupal Way
The Drupal WayThe Drupal Way
The Drupal Way
 

Plus de lucenerevolution

Text Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and LuceneText Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and Lucenelucenerevolution
 
State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! lucenerevolution
 
Building Client-side Search Applications with Solr
Building Client-side Search Applications with SolrBuilding Client-side Search Applications with Solr
Building Client-side Search Applications with Solrlucenerevolution
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationslucenerevolution
 
Scaling Solr with SolrCloud
Scaling Solr with SolrCloudScaling Solr with SolrCloud
Scaling Solr with SolrCloudlucenerevolution
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusterslucenerevolution
 
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and ParboiledImplementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiledlucenerevolution
 
Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs lucenerevolution
 
Enhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchEnhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchlucenerevolution
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Stormlucenerevolution
 
Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?lucenerevolution
 
Schemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APISchemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APIlucenerevolution
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucenelucenerevolution
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMlucenerevolution
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucenelucenerevolution
 
Recent Additions to Lucene Arsenal
Recent Additions to Lucene ArsenalRecent Additions to Lucene Arsenal
Recent Additions to Lucene Arsenallucenerevolution
 
Turning search upside down
Turning search upside downTurning search upside down
Turning search upside downlucenerevolution
 
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...lucenerevolution
 
Shrinking the haystack wes caldwell - final
Shrinking the haystack   wes caldwell - finalShrinking the haystack   wes caldwell - final
Shrinking the haystack wes caldwell - finallucenerevolution
 

Plus de lucenerevolution (20)

Text Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and LuceneText Classification Powered by Apache Mahout and Lucene
Text Classification Powered by Apache Mahout and Lucene
 
State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here! State of the Art Logging. Kibana4Solr is Here!
State of the Art Logging. Kibana4Solr is Here!
 
Search at Twitter
Search at TwitterSearch at Twitter
Search at Twitter
 
Building Client-side Search Applications with Solr
Building Client-side Search Applications with SolrBuilding Client-side Search Applications with Solr
Building Client-side Search Applications with Solr
 
Integrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applicationsIntegrate Solr with real-time stream processing applications
Integrate Solr with real-time stream processing applications
 
Scaling Solr with SolrCloud
Scaling Solr with SolrCloudScaling Solr with SolrCloud
Scaling Solr with SolrCloud
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
 
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and ParboiledImplementing a Custom Search Syntax using Solr, Lucene, and Parboiled
Implementing a Custom Search Syntax using Solr, Lucene, and Parboiled
 
Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs Using Solr to Search and Analyze Logs
Using Solr to Search and Analyze Logs
 
Enhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic searchEnhancing relevancy through personalization & semantic search
Enhancing relevancy through personalization & semantic search
 
Real-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and StormReal-time Inverted Search in the Cloud Using Lucene and Storm
Real-time Inverted Search in the Cloud Using Lucene and Storm
 
Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?Solr's Admin UI - Where does the data come from?
Solr's Admin UI - Where does the data come from?
 
Schemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST APISchemaless Solr and the Solr Schema REST API
Schemaless Solr and the Solr Schema REST API
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucene
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
 
Faceted Search with Lucene
Faceted Search with LuceneFaceted Search with Lucene
Faceted Search with Lucene
 
Recent Additions to Lucene Arsenal
Recent Additions to Lucene ArsenalRecent Additions to Lucene Arsenal
Recent Additions to Lucene Arsenal
 
Turning search upside down
Turning search upside downTurning search upside down
Turning search upside down
 
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
Spellchecking in Trovit: Implementing a Contextual Multi-language Spellchecke...
 
Shrinking the haystack wes caldwell - final
Shrinking the haystack   wes caldwell - finalShrinking the haystack   wes caldwell - final
Shrinking the haystack wes caldwell - final
 

Dernier

NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?SANGHEE SHIN
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIUdaiappa Ramachandran
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum ComputingGDSC PJATK
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 

Dernier (20)

NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum Computing
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 

Things Made Easy: One Click CMS Integration with Solr & Drupal

  • 1. May 10, 2012 Things Made Easy: One Click CMS Integration with Solr & Drupal Peter M. Wolanin, Ph.D. Momentum Specialist (principal engineer), Acquia, Inc. Drupal contributor drupal.org/user/49851 co-maintainer of the Drupal Apache Solr Search Integration module
  • 2. Key Questions to Be Answered • What is Drupal? • What Apache Solr features are integrated with Drupal? • Why is Drupal plus Apache Solr is better than starting from scratch? • What elements of the search can you configure in the UI without code?
  • 3. Why Are You Here? • You are starting a new website project? • You are wondering how hard it is to actually integrate Apache Solr with a website? • You already use Drupal but not with Apache Solr? • You like things that are easy yet powerful?
  • 4. Drupal: Web Application Framework + CMS == Social Publishing Platform Drupal “… is as much a Social Software platform as it is a web content management system.” content users CMS Watch, The Web CMS Report 2009 blogs / workflow wikis forums / taxonomy comments Content Social Mgmt Software Systems Tools social semantic web ranking RSS social tagging social analytics networks
  • 5. Drupal + Solr Provides Immediate Access to Rich Search Features Dynamic content requires dynamic navigation - which is provided by an effective search Search facets mean no dead ends Solr provides better keyword relevancy in results Much faster searches for sites with lots of content By avoiding database queries, Drupal with Solr scales better
  • 6. DEMO: A Drupal 7 partial copy of the conference site with Apache Solr integration http://youtu.be/yY6kma_ViWc
  • 8. Drupal Has User Accounts, Roles & Permissions Define custom roles Set granular access controls by role Configure user behavior: – Registration – Email – Profiles – Pictures
  • 9. Drupal Modules Add Functionality “There’s a module for that” More than 4100 Drupal 7 community modules Often controlled by role- based permissions Drupal core and modules are GPL v2+, and have a huge, active community
  • 10. Drupal is Written in PHP, Which Makes for Easy Customization The Drupal architecture encourages and provides many avenues for customization by writing modules but not patching Drupal core Drupal has a huge community of users. Approximately 10,000 sites report to Drupal.org that they use the Apache Solr Search Integration module.
  • 12. Drupal Entities are Content + Data Nodes are the basic entity used for text content Node 1 Node 2 Node 3 The entity system is extensible - can represent Node 4 Node 5 Node 6 any data Examples of data stored within Drupal entities Node 7 Node 8 Node 9 – Text – geographic location – Node reference
  • 13. Entity Types are Enriched With User-configurable Data Fields Define new data fields on a node using the Field API module. – Text, images, integers, date, reference, etc Flexible and configurable in the UI No programming required (many existing modules)
  • 15. A Strong Framework for Content Classification Core taxonomy system Modules provide taxonomy-based appearance, access control Standard input options include free tagging, flat-controlled, and hierarchical-controlled
  • 16. Drupal + Solr Search for Business, Government and NGOs http://www.mattel.com/search/ apachesolr_search/ https://www.eff.org/search/site/ http://www.poly.edu/search/apachesolr_search/ http://www.whitehouse.gov/search/site/ http://opensource.com/search/apachesolr_search/ https://www.ethicshare.org/publications/ http://www.nypl.org/search/apachesolr_search/ http://www.mylifetime.com/community/search/apachesolr_search/ http://www.emporia.edu/search/site/ http://www.restorethegulf.gov/search/apachesolr_search/ http://www.hrw.org/en/search/apachesolr_search/
  • 17. Drupal Has Already Solved Many Solr Integration Challenges The most important - content indexing. Facets, sorting, and highlighting of results. Immediate integration with the More Like This and spell-check handlers. Included sub-module integrates content access permissions by indexing to and filtering Solr results based on the current user.
  • 18. Easy Content Recommendation! Uses the MLT handler Picks fields from the currently viewed node
  • 19. The Module Has a Pipeline for Indexing Drupal Content to Solr Drupal entities are processed into one (or more) document objects. Each document object is converted to XML and sent to Solr. Node object Document object XML string entity_type <doc> title label <field <field name="entity_type">node</field> name="label">Hello Drupal</field> <field name="entity_id">101</field> nid entity_id <field </doc> name="bundle">session</field> type Drupal bundle functions
  • 20. Entity Meta-data Gives Automatic Facets! Content types Taxonomy terms per vocabulary Content authors Posted and modified dates Text and numbers selected via select list/radios/check boxes
  • 21. Drupal Modules Implement hooks to Control Indexing and Display HOOK_apachesolr_index_document_build($document, $entity, $entity_type, $env_id) By creating a Drupal module (in PHP), you can implement module and theme “hooks” to extend or alter Drupal behavior. Change or replace the data normally indexed. Modify the search results and their appearance.
  • 22. Updates to an Entity or Related Meta-data Cause Reindexing Drupal entities are indexed during Drupal cron (typically invoked via *nix cron). By using a specialized tracking table, content can automatically be queued for reindex when changed, and subsets of content can potentially be sent to different Solr indexes. Entities include many ID-based reference fields (e.g. the User ID of the author). Changes to the referenced data is also watched.
  • 23. Indexing Tracking Tables Maintain Order +-------------+-----------+-------------+--------+------------+ | entity_type | entity_id | bundle | status | changed | +-------------+-----------+-------------+--------+------------+ | node | 36 | session | 1 | 1336520756 | | node | 37 | session | 1 | 1336510489 | | node | 38 | session | 1 | 1336510456 | | node | 39 | session | 1 | 1336510456 | | node | 40 | speaker_bio | 1 | 1336510456 | +-------------+-----------+-------------+--------+------------+ When a node is updated, the “changed” timestamp is updated. The indexing pipeline tracks the largest timestamp and entity_id which has been indexed.
  • 24. Example: Taxonomy Term Classifying a Node is Changed Grapefruit Citrus fruit function apachesolr_taxonomy_term_update($term) All nodes classified with this terms are queued to be re-indexed by setting the “changed” column to the current time. Thus you will correctly match ‘Citrus’ instead of ‘Grapefruit’ for those documents.
  • 25. When Unpublished, Content is Purged Drupal core includes a simple editorial workflow where content may be toggled between published (visible) and unpublished (incomplete, removed, spam, etc). The module immediately removes content from the index when unpublished, and also tracks it for future removal in case the Solr server is unavailable.
  • 26. Search Using Dismax Query Parsing & Boosting Features Dynamic fields in schema.xml used to index standard and custom entity data fields Dismax (or EDismax) handler used for keyword searching across multiple fields and per-field boosts Query-time boosting options available in the UI
  • 27. A Query Object Is Used to Prepare and Run Searches HOOK_apachesolr_query_prepare($query) $query->setParam('hl.fl', $field); $keys = $query->getParam('q'); $response = $query->search();
  • 28. More Modules Available to Add More Features A few examples: ApacheSolr Attachments Apache Solr Multisite Search Apache Solr Organic Groups Integration Apachesolr User indexing Apachesolr Commerce
  • 29. To Wrap Up ! Drupal has extensive Apache Solr integration already, and is highly customizable. The Drupal platform is widely adopted, and the Drupal community drives rapid innovation. Acquia provides Enterprise Drupal support and a network of partners. Acquia includes a secure, hosted Solr index with every support subscription.
  • 30. Did I Answer These? • What is Drupal? • What Apache Solr features are integrated with Drupal? • Why is Drupal plus Apache Solr is better than starting from scratch? • What elements of the search can you configure in the UI without code?
  • 31. Other PHP Integration Tools • http://www.solarium-project.org/ • http://php.net/solr http://pecl.php.net/package/solr • http://code.google.com/p/solr-php-client/ Caveat: don’t use serialized PHP response format in a custom integration - use JSON writer.
  • 32. Acquia is Hiring! • Do you love Drupal, Solr, the LAMP stack, DevOps or anything related, and working at a fast-growing and successful startup? • Boston and Portland area U.S. offices. • Some remote opportunities as well. • Come talk to me! peter.wolanin@acquia.com pwolanin in IRC #drupal or #solr
  • 33. Resources ... Questions? ! http://drupal.org/project/apachesolr http://drupal.org/project/apachesolr_attachments http://archive.org/details/ drupalconchi_day2_attain_apache_solr_coding_c hops http://www.acquia.com/tags/apachesolr http://groups.drupal.org/lucene-nutch-and-solr