Barcelona DrupalCon An Update on Drupal Searching
(INSERT PICTURE OF BARCELONA) (maybe Gaudi House on Catalunya) By Doug Green [email_address] [email_address] An Update on ...
<ul><li>Search in General </li></ul><ul><li>Indexing </li></ul><ul><li>Searching – in this talk </li></ul><ul><li>User Int...
<ul><li>Overview of this Talk </li></ul>An Update on Drupal Searching <ul><li>Start with the easy & fun stuff </li></ul><u...
<ul><li>Views based searching </li></ul>An Update on Drupal Searching <ul><li>Presented at OS/CMS </li></ul><ul><li>module...
<ul><li>Core Search Overview  </li></ul><ul><li>Need to understand to talk about  </li></ul><ul><ul><li>performance and li...
<ul><li>Search Node Ranking </li></ul><ul><li>Keyword Relevance / Node Linking </li></ul><ul><li>Recently Posted (newness)...
<ul><li>Introduction to Queries </li></ul><ul><li>AND </li></ul><ul><li>OR </li></ul><ul><li>Exclude </li></ul><ul><li>Phr...
<ul><li>AND SQL </li></ul><ul><li>SELECT sid from {search_index} </li></ul><ul><ul><li>WHERE (word = 'cat' OR word = 'dog'...
<ul><li>OR SQL </li></ul><ul><li>SELECT sid from {search_index} </li></ul><ul><ul><li>WHERE (word = 'cat' OR word = 'dog')...
<ul><li>Exclude SQL </li></ul><ul><li>same as previous (AND or OR depending) </li></ul>An Update on Drupal Searching <ul><...
<ul><li>AND: SELECT sid from {search_index} </li></ul><ul><ul><li>WHERE (word = 'cat' OR word = 'dog') </li></ul></ul><ul>...
<ul><li>Exclude: </li></ul><ul><ul><li>SELECT ... WHERE NOT IN (...) </li></ul></ul><ul><li>Yes, this is kinda slow </li><...
<ul><li>Necessary to {search_index} AND queries </li></ul><ul><li>Drastically smaller {search_index} table </li></ul><ul><...
<ul><li>views_fastsearch </li></ul><ul><li>Includes All of above </li></ul><ul><li>Plus Views Argument handler for links <...
<ul><li>http://www.civicactions.com/blog/search </li></ul><ul><li>d.o #146466 </li></ul><ul><li>d.o #143888 </li></ul><ul>...
[email_address] views_fastsearch An Update on Drupal Searching
Upcoming SlideShare
Loading in...5
×

Search Presentation

6,435

Published on

Published in: Business, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,435
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Search Presentation"

  1. 1. Barcelona DrupalCon An Update on Drupal Searching
  2. 2. (INSERT PICTURE OF BARCELONA) (maybe Gaudi House on Catalunya) By Doug Green [email_address] [email_address] An Update on Drupal Searching
  3. 3. <ul><li>Search in General </li></ul><ul><li>Indexing </li></ul><ul><li>Searching – in this talk </li></ul><ul><li>User Interface – in this talk </li></ul>An Update on Drupal Searching
  4. 4. <ul><li>Overview of this Talk </li></ul>An Update on Drupal Searching <ul><li>Start with the easy & fun stuff </li></ul><ul><ul><li>Views based UI improvements </li></ul></ul><ul><li>How does Core Search work </li></ul><ul><li>How does Core Search SQL work </li></ul><ul><li>Three patches to improve Core Search SQL </li></ul><ul><li>VFS proof of concept </li></ul><ul><li>Other Search Options – not in this talk </li></ul><ul><ul><li>SoC Fuzzy Search </li></ul></ul><ul><ul><li>Semantec Search, Faceted Search </li></ul></ul>
  5. 5. <ul><li>Views based searching </li></ul>An Update on Drupal Searching <ul><li>Presented at OS/CMS </li></ul><ul><li>modules - VFB, VFS, daterange </li></ul><ul><li>demos </li></ul><ul><ul><li>filter block </li></ul></ul><ul><ul><li>override search box </li></ul></ul><ul><ul><li>views search plugin </li></ul></ul><ul><li>d.o #130714 </li></ul>
  6. 6. <ul><li>Core Search Overview </li></ul><ul><li>Need to understand to talk about </li></ul><ul><ul><li>performance and link referencing </li></ul></ul><ul><li>indexing </li></ul><ul><li>UI </li></ul><ul><li>node searches / user searches </li></ul><ul><li>extending with Search Implementors </li></ul><ul><li>credit </li></ul>An Update on Drupal Searching
  7. 7. <ul><li>Search Node Ranking </li></ul><ul><li>Keyword Relevance / Node Linking </li></ul><ul><li>Recently Posted (newness) </li></ul><ul><li>Number of Comments </li></ul>An Update on Drupal Searching <ul><li>d.o #146466 </li></ul>
  8. 8. <ul><li>Introduction to Queries </li></ul><ul><li>AND </li></ul><ul><li>OR </li></ul><ul><li>Exclude </li></ul><ul><li>Phrase </li></ul><ul><li>Advanced Tab </li></ul>An Update on Drupal Searching <ul><ul><li>dogs cats </li></ul></ul><ul><ul><li>dogs OR cat </li></ul></ul><ul><ul><li>dogs or cats </li></ul></ul><ul><ul><li>dogs -cats </li></ul></ul><ul><ul><li>“ sheep dog” </li></ul></ul><ul><ul><li>type:forum </li></ul></ul>
  9. 9. <ul><li>AND SQL </li></ul><ul><li>SELECT sid from {search_index} </li></ul><ul><ul><li>WHERE (word = 'cat' OR word = 'dog') </li></ul></ul><ul><ul><li>GROUP BY sid HAVING COUNT(*) >= 2 </li></ul></ul>An Update on Drupal Searching <ul><li>SELECT sid from {search_dataset} </li></ul><ul><ul><li>WHERE (data LIKE '% cat %' </li></ul></ul><ul><ul><li>AND data LIKE '% dog %') </li></ul></ul><ul><li>Why >= and why the second query? </li></ul>
  10. 10. <ul><li>OR SQL </li></ul><ul><li>SELECT sid from {search_index} </li></ul><ul><ul><li>WHERE (word = 'cat' OR word = 'dog') </li></ul></ul><ul><ul><li>GROUP BY sid HAVING COUNT(*) >= 1 </li></ul></ul>An Update on Drupal Searching <ul><li>SELECT sid from {search_dataset} </li></ul><ul><ul><li>WHERE (data LIKE '% cat %' </li></ul></ul><ul><ul><li>OR data LIKE '% dog %') </li></ul></ul><ul><li>Why the second query? </li></ul>
  11. 11. <ul><li>Exclude SQL </li></ul><ul><li>same as previous (AND or OR depending) </li></ul>An Update on Drupal Searching <ul><li>SELECT sid from {search_dataset} </li></ul><ul><ul><li>WHERE (data LIKE '% cat %' </li></ul></ul><ul><ul><li>AND data NOT LIKE '% dog %') </li></ul></ul><ul><li>Why the second query? </li></ul><ul><ul><li>Mysql 3 doesn't support Subqueries </li></ul></ul><ul><li>d.o #143888 </li></ul>
  12. 12. <ul><li>AND: SELECT sid from {search_index} </li></ul><ul><ul><li>WHERE (word = 'cat' OR word = 'dog') </li></ul></ul><ul><ul><li>GROUP BY sid HAVING COUNT(*) = 2 </li></ul></ul><ul><li>OR: SELECT sid from {search_index} </li></ul><ul><ul><li>WHERE (word = 'cat' OR word = 'dog') </li></ul></ul><ul><ul><li>GROUP BY sid </li></ul></ul><ul><li>One Solution – Unique Index </li></ul>An Update on Drupal Searching <ul><li>d.o #143160 </li></ul>
  13. 13. <ul><li>Exclude: </li></ul><ul><ul><li>SELECT ... WHERE NOT IN (...) </li></ul></ul><ul><li>Yes, this is kinda slow </li></ul><ul><li>But, I bet 99% of users never use it </li></ul><ul><li>And, all remaining queries aren't </li></ul><ul><ul><li>penalized for something hardly used </li></ul></ul><ul><li>Second Solution – Subqueries </li></ul>An Update on Drupal Searching <ul><li>d.o #151910 and #143888 (views) </li></ul>
  14. 14. <ul><li>Necessary to {search_index} AND queries </li></ul><ul><li>Drastically smaller {search_index} table </li></ul><ul><li>Added benefit {search_node_links} </li></ul><ul><li>Third Solution – Node Link Tracker </li></ul>An Update on Drupal Searching <ul><li>d.o #146466 </li></ul>
  15. 15. <ul><li>views_fastsearch </li></ul><ul><li>Includes All of above </li></ul><ul><li>Plus Views Argument handler for links </li></ul><ul><li>My Playground - VFS </li></ul>An Update on Drupal Searching <ul><li>d.o/project/views_fastsearch </li></ul>
  16. 16. <ul><li>http://www.civicactions.com/blog/search </li></ul><ul><li>d.o #146466 </li></ul><ul><li>d.o #143888 </li></ul><ul><li>d.o #151910 </li></ul><ul><li>d.o #143160 </li></ul><ul><li>d.o #146466 </li></ul><ul><li>g.d.o #4102 (Search group) </li></ul><ul><li>More References </li></ul>An Update on Drupal Searching
  17. 17. [email_address] views_fastsearch An Update on Drupal Searching

×