78
INTRO TO SEARCH IN DRUPAL 7 Create an optimal search experience

Apache Solr Search Course Drupal 7 Acquia

  • Upload
    nickvh

  • View
    1.879

  • Download
    7

Embed Size (px)

DESCRIPTION

Apache Solr Search Course Drupal 7 Acquia

Citation preview

Page 1: Apache Solr Search Course Drupal 7 Acquia

INTRO TO SEARCH IN DRUPAL 7

Create an optimal search experience

Page 2: Apache Solr Search Course Drupal 7 Acquia

Welcome!

Page 3: Apache Solr Search Course Drupal 7 Acquia

SECTION 1: WHAT ARE WE SEARCHING FOR?

Introduction

Page 4: Apache Solr Search Course Drupal 7 Acquia

We need search!The problem

Page 5: Apache Solr Search Course Drupal 7 Acquia

Why do you need search?• Commerce - increase sales?• Large amounts of data?• Connecting people to information?

!

• Share some examples!

Page 6: Apache Solr Search Course Drupal 7 Acquia

Our sample travel site• Administration > Structure > Content types• Administration > Reports > Field list

Page 7: Apache Solr Search Course Drupal 7 Acquia

Core search - what’s in the box?

We need a search page!

Page 8: Apache Solr Search Course Drupal 7 Acquia

Drupal 7 core search• Interval defines how often updated content is

being processed and sent to the index.

Cron.php Indexing process

Page 9: Apache Solr Search Course Drupal 7 Acquia

Core search indexing• HTML Tag Scores!

• <H1> scored at 25 !

• <H2> scored at 18!

• Headings have higher scores than content.!

• Accent Removal!• Montréal => Montreal!

• Stemming!• skips, skipping also

means “skip”

Page 10: Apache Solr Search Course Drupal 7 Acquia

Core search limitations

• SQL Not optimized for full text search!

• Limited Operators!

• Slow/not scalable!

• Stemming happens on PHP side, not optimized!

• Dead ends

Page 11: Apache Solr Search Course Drupal 7 Acquia

Demo: Core search

• Load up Drupal core search• Confusing UI• Advanced search? Users don’t use it.• Confusing UI of Search page• Can’t customize options

• Index?• Limitations for fine-tuning

Page 12: Apache Solr Search Course Drupal 7 Acquia

Exercise 1: Core search configuration

• Load up Drupal core search• Confusing UI• Advanced search? Users don’t use it.• Confusing UI of Search page• Can’t customize options

• Index?• Limitations for fine-tuning

Page 13: Apache Solr Search Course Drupal 7 Acquia

Dead ends....• A bad landing page, with no suggestions.• “Don’t make me think”.

Page 14: Apache Solr Search Course Drupal 7 Acquia

What are alternatives?

Page 15: Apache Solr Search Course Drupal 7 Acquia

Alternatives to core search• Full services:!

• Google’s Custom Search !

• Google Search Appliance!

!

• Indexing software:!• Fuzzy Search!

• Elasticsearch!

• Apache Solr

Page 16: Apache Solr Search Course Drupal 7 Acquia

Apache Solr• Based on Lucene!

• Written in Java; uses container such as Tomcat or Jetty!

• Mathematical Indexing!

• Replication / Solr Cloud!

• Multiple indexes (Multicore)

Page 17: Apache Solr Search Course Drupal 7 Acquia

Apache Solr• Separate Server!

• Indexes your site!

• Widely used and tested

GET (POST) Search

*SQL

Web ServerPOST

index

Solr

Page 18: Apache Solr Search Course Drupal 7 Acquia

Integrating Apache Solr and Drupal

Page 19: Apache Solr Search Course Drupal 7 Acquia

Integrate Solr w/ Drupal• Search API• Apache Solr Search Integration

Page 20: Apache Solr Search Course Drupal 7 Acquia

Customizing Solr• Improve the Index• What Solr is storing• How Solr indexes information

• Improve the Query• What is being requested from Solr

• Improve the Results• What is displayed to the user, and how they

navigate the search experience

http://2012.pnwdrupalsummit.org/sessions/customizing-apache-solr-search-experience

Page 21: Apache Solr Search Course Drupal 7 Acquia

SECTION 2: CONFIGURE SOLR SEARCH IN DRUPAL

Getting set up

Page 22: Apache Solr Search Course Drupal 7 Acquia

What comes with Solr?

Page 23: Apache Solr Search Course Drupal 7 Acquia

ComparisonsCore index config Solr index config

Page 24: Apache Solr Search Course Drupal 7 Acquia

Available with SolrSpell checking Bias settings Suggestions

Page 25: Apache Solr Search Course Drupal 7 Acquia

“More like this”• Example from NIH.gov:

Instead of using Entity reference fields.• You can configure multiple suggestion blocks

for specific content types or site sections.

Page 26: Apache Solr Search Course Drupal 7 Acquia

Sorting options• A block to allow users to alter sort.

Page 27: Apache Solr Search Course Drupal 7 Acquia

Demo: What comes with Solr?

• Enable the modules. • Index the site. What is indexed?• Spelling correction offered out of the box,

difference with core search.• Re-index, when does “cron” run?• More like this block, place and configure.• Search page configuration under Pages/

blocks.

Page 28: Apache Solr Search Course Drupal 7 Acquia

Exercise 2: Configure Solr search

• A. Ensure search is installed and enabled• B. Index site• C. Review default results• D. Configure your search page• E. Place a “more like this” block on your site.

Page 29: Apache Solr Search Course Drupal 7 Acquia

SECTION 3: HOW TO IMPROVE SEARCH

Boosting relevant results

Page 30: Apache Solr Search Course Drupal 7 Acquia

Ways to optimize search

Page 31: Apache Solr Search Course Drupal 7 Acquia

Optmization options• Phrases• Search for sentences, phrases

• Optimize search for specific use cases• More recent content, is it more relevant?• Content with comments, are they more useful?• Body content, use of H2 and H3?

• Synonyms• synonyms.txt -

Page 32: Apache Solr Search Course Drupal 7 Acquia

Demo: Optimize results

• Bias settings• When changes take effect• Before and after examples

Page 33: Apache Solr Search Course Drupal 7 Acquia

Exercise 3: Optimize your search results

A.Test search before changes

B.Improve the result biases

C.Testing the changes; how to check the Index

D.Improve term proximity results

E.Improve bias based on fields and terms

Page 34: Apache Solr Search Course Drupal 7 Acquia

SECTION 4: FACETS AND WIDGETS

Filtering and displaying results

Page 35: Apache Solr Search Course Drupal 7 Acquia

Facets: What users want

Page 36: Apache Solr Search Course Drupal 7 Acquia

Facets provide useful filters

Shows what it’s filtered on

Bravo.com, Drupal site

Page 37: Apache Solr Search Course Drupal 7 Acquia

Select content

.net magazine, Drupal site

Page 38: Apache Solr Search Course Drupal 7 Acquia

Offer facets people needDo clients sort by

name?

Use facets and sorting which

influence decisions.

!Material

Color, etc

made.com, not a drupal site

Page 39: Apache Solr Search Course Drupal 7 Acquia

Tips to define facets• Listen to users• Analyze query logs to define facets. • Use popular words to label facets.• Check competitors and across your industry.

• Choose important facets • On which facets do people make decisions?• Which features influence a purchase?• Plan content types for searching• Depends on your content model, taxonomy, fields!

http://uxdesign.smashingmagazine.com/2009/12/08/principles-of-effective-e-commerce-search/

Page 40: Apache Solr Search Course Drupal 7 Acquia

How are our users searching?

• What facets would you enable on this site?

Page 41: Apache Solr Search Course Drupal 7 Acquia

Facets API in Drupal

Page 42: Apache Solr Search Course Drupal 7 Acquia

About Facets• For each facet you configure:• A display widget• A corresponding query type. • A block to place, some examples:

Page 43: Apache Solr Search Course Drupal 7 Acquia

Example display widgetsWith Facet API Additional modules

Links Tag cloud drupal.org/project/facetapi_tagcloud

Links with checkboxes Slider drupal.org/project/facetapi_slider

Page 44: Apache Solr Search Course Drupal 7 Acquia

Demo: Configuring facets

• Enable the module.• Review options for configuring facets for

different displays.• Display widgets, relate to specific queries.

Page 45: Apache Solr Search Course Drupal 7 Acquia

Exercise 4: Configure a facet slider

• A. Configure the facet options• B. Place the population facet block• C. Test the search• D. Enable the slider for display• E. Test the search again

Page 46: Apache Solr Search Course Drupal 7 Acquia

SECTION 5: HOW TO IMPROVE USER EXPERIENCE

Page 47: Apache Solr Search Course Drupal 7 Acquia

The user experience

Page 48: Apache Solr Search Course Drupal 7 Acquia

Established standards• Users expect the search form to be... where?• Queries• Should be easy to refine• Incremental construction

• Results • Display the query• Easy to read key information

http://uxdesign.smashingmagazine.com/2009/12/08/principles-of-effective-e-commerce-search/

Page 49: Apache Solr Search Course Drupal 7 Acquia

Beyond the defaults• Limitations:• Default results don’t show relevant data specific to

your site: dates, numerical data, location maps.

• Better:• Landing page revealing the content• Better search bar with suggestions!• Key information in results with custom displays. • Paths which are easy to share and navigate.

Page 50: Apache Solr Search Course Drupal 7 Acquia

Options to improve experience

Page 51: Apache Solr Search Course Drupal 7 Acquia

Making improvements

Page 52: Apache Solr Search Course Drupal 7 Acquia

Configure search page

Page 53: Apache Solr Search Course Drupal 7 Acquia

Search page options• How many results?• Enable spell check?• Show search box?• Enabled Facets?

Page 54: Apache Solr Search Course Drupal 7 Acquia

Facet block placement• Double check your facet block configuration. • Where to display? Search box in header?

Page 55: Apache Solr Search Course Drupal 7 Acquia

Demo: Apache Solr Autocomplete

• Enable Apache Solr Auto Complete.• Uses stemming so verb forms are picked up

as well.• Becoming standard, what users want.

Page 56: Apache Solr Search Course Drupal 7 Acquia

Demo: Rich snippets

• Replicates Google’s results; Needs RDF!

Tip: If you install this during demo, please ensure to disable this for next exercise

Page 57: Apache Solr Search Course Drupal 7 Acquia

Demo: Search page configuration

• Where you configure Pages/blocks• Demo how to change options

Page 58: Apache Solr Search Course Drupal 7 Acquia

Next: Manage display• Control the display for “Search results”• Limited options; only fields

Page 59: Apache Solr Search Course Drupal 7 Acquia

Display Suite for Search results

Page 60: Apache Solr Search Course Drupal 7 Acquia

Display Suite!

• Display Suite + Display Suite Search !• (and Display Suite UI)!

• Custom layout!

• Select which fields to display!

• Multiple columns, headers and footers.

Page 61: Apache Solr Search Course Drupal 7 Acquia

Example

Header

Left

Footer

Right

Page 62: Apache Solr Search Course Drupal 7 Acquia

Display suite• Access items which aren’t “fields”

Page 63: Apache Solr Search Course Drupal 7 Acquia

View modes• Add “view modes” for specific control

Page 64: Apache Solr Search Course Drupal 7 Acquia

Display Suite regions• Variety of layouts

Page 65: Apache Solr Search Course Drupal 7 Acquia

Arrange fields in regions

Page 66: Apache Solr Search Course Drupal 7 Acquia

Demo: Display Suite

• Enable Display Suite, Display Suite Search, Display Suite UI

• Modify display and change layout for “Search result”

• Show what “Search index” provides.

Page 67: Apache Solr Search Course Drupal 7 Acquia

Exercise 5: Improve display with Display Suite

• Manage display, Choose relevant fields

Page 68: Apache Solr Search Course Drupal 7 Acquia

SECTION 6: CUSTOM CODE - PROXIMITY SEARCH

Example of custom code

Page 69: Apache Solr Search Course Drupal 7 Acquia

Display location search results

Page 70: Apache Solr Search Course Drupal 7 Acquia

Location data in search• Takes the

coordinates of the search, and returns to the query.

Page 71: Apache Solr Search Course Drupal 7 Acquia

Demo: Location results

• Use Display Suite to display a location on a Map. • Which modules work best• Tips about handling Location data

!

• A custom code example- using location as a factor in search.• Search training Location module• Location Search module

Page 72: Apache Solr Search Course Drupal 7 Acquia

Exercise 6: Display location results

• Requires: The Display Suite modules, GMap, GMap Location, Geocoder.

Page 73: Apache Solr Search Course Drupal 7 Acquia

SECTION 7: ENHANCEMENTS

If time allows!

Page 74: Apache Solr Search Course Drupal 7 Acquia

Indexing files such as PDF or DOCX

Search file attachments

Page 75: Apache Solr Search Course Drupal 7 Acquia

Search files

• Document search!

• Server requirements

Page 76: Apache Solr Search Course Drupal 7 Acquia

Demo: Attachment search

• Assumes you’re using Acquia’s search service

• Enable Apache Solr search attachments

Page 77: Apache Solr Search Course Drupal 7 Acquia

ANY QUESTIONS?

Page 78: Apache Solr Search Course Drupal 7 Acquia

Feedback please!http://acquia.com/training-feedback