SlideShare una empresa de Scribd logo
1 de 29
3 Use Cases for eZ Find by Ivo Lukač www.netgen.hr/eng
Why use eZ Find / Solr?
Case 1 – Suggestions while searching TASK Drop down list of suggestions when typing text in search field Needs to be based on content data Arround 300 000 objects Needs to be fast (users are familiar with Google!)
Case 1 – Suggestions while searching SOLUTION MySQL queries with LIKE would be to slow eZ Find index was already in place Develop a simple extension using solr facets query with prefix parameter
Case 1 – Suggestions while searching SOLR QUERY PARAM rows=0 (standard search results are not needed) facet=on (enable facets) facet.field=ngsuggest_text (facet field defined in ngsuggest.ini) facet.prefix=con (letters user entered) facet.limit=10 (maximal number of suggestions defined in ngsuggest.ini) facet.mincount=1 (minimum occurances for word to show up in suggestions) q=*:* (all index is searched) fq=meta_is_hidden_b:false+AND+meta_is_invisible_b:false (filter conditions: root node id, classes, installation id, .. ) wt=json (return results in JSON format)
Case 1 – Suggestions while searching EZ PUBLISH MODULE proxy module (no direct call to Solr) builds query  JSON results from solr just outputs
Case 1 – Suggestions while searching CLIENT SIDE jQuery JSON suggestsearch component Calls eZ suggestion module over AJAX /ngsuggest/searchsolr?id=[search_id]&keyword=[text] Uses returned JSON to show the list JSON results from solr just outputs
Case 1 – Suggestions while searching TUNING ez_df_text not usable Prepare special Solr field just for suggestions
Case 1 – Suggestions while searching
Case 1 – Suggestions while searching TRY IT OUT NOW http://projects.ez.no/ngsuggest Follow INSTALL.txt
Case 2 – Increasing template performance SITUATION big site with lots of logged in users  lot of fast changing content standard caching ways not enough needs to be faster
Case 2 – Increasing template performance SOLUTION replacing content list/tree function with ezfind search fetch will be faster database will have less queries
Case 2 – Increasing template performance BASIC NOTIONS DelayedIndexing  OptimizeOnCommit AllowEmptySearch not all data is in the index Shards
Case 2 – Increasing template performance FEATURES OF EZFIND FETCH Text searching Offset, limit, sort Facets Filter by class, section, subtree, etc. Ignoring visibility  Limitation
Case 2 – Increasing template performance FOR TREE  Use subtree_array param FOR LIST Use filter -> e.g. main_parent_node_id:2
Case 2 – Increasing template performance REPLACEMENT1
Case 2 – Increasing template performance REPLACEMENT 2
Case 2 – Increasing template performance REPLACEMENT 3
Case 2 – Increasing template performance AND BEYOND Text search Facets Boosting Highlighting Spell checking
Case 2 – Increasing template performance BENEFITS Speed, speed & speed Score/relevance ranking Additional funcionalities Shards for multilanguage sites No need for extra count fetch More powerful filtering
Case 2 – Increasing template performance DRAWBACKS Data dependent on index sync Some sort methods issing No main_node_only switch No class excluding (only in ini) Filtering depends on what data is indexed
Case 2 – Increasing template performance MORE DETAILS http://share.ez.no/tutorials FUTURE In next versions of ezfind all object data will be indexed  No need to query database at all
Case 3 – Geo Search TASK Search for nearest locations Make a mobile interface Use phone location as a reference Needs to be fast 
Case 3 – Geo Search PREREQUISITES eZ Find 2.2 with geopoint field type ezgmaplocation extension ezfSolrDocumentFieldGmapLocation class for indexing Problem with dash “-”
Case 3 – Geo Search EUCLIDIAN DISTANCE dist()=sqrt((lat1-lat2)2+(lng1-lng2)2) sqedist()=(lat1-lat2)2+(lng1-lng2)2 BOOSTING WITH DISTANCE recip(sqedist(2, point1,point2),1,1,0)
Case 3 – Geo Search QUERY TIME BOOSTING _val_:"recip(sqedist(gmaps_coordinates,vector(48.166085,-104.326172)),1,1,0)“ Concat it with search term Result is sorted by distance
Case 3 – Geo Search
Case 3 – Geo Search MORE DETAILS http://www.netgen.hr/eng/Blog
Die ende INSTALLED THE SUGGESTION EXTENSION ? QUESTIONS ?

Más contenido relacionado

Similar a 3 Use Cases For eZ Find

20100622 e z_find_slides_gig_v2.1
20100622 e z_find_slides_gig_v2.120100622 e z_find_slides_gig_v2.1
20100622 e z_find_slides_gig_v2.1
Gilles Guirand
 
Lucene BootCamp
Lucene BootCampLucene BootCamp
Lucene BootCamp
GokulD
 
20130310 solr tuorial
20130310 solr tuorial20130310 solr tuorial
20130310 solr tuorial
Chris Huang
 
SH 2 - SES 3 - MongoDB Aggregation Framework.pptx
SH 2 - SES 3 -  MongoDB Aggregation Framework.pptxSH 2 - SES 3 -  MongoDB Aggregation Framework.pptx
SH 2 - SES 3 - MongoDB Aggregation Framework.pptx
MongoDB
 

Similar a 3 Use Cases For eZ Find (20)

Lucene and MySQL
Lucene and MySQLLucene and MySQL
Lucene and MySQL
 
Tagging search solution design
Tagging search solution designTagging search solution design
Tagging search solution design
 
20100622 e z_find_slides_gig_v2.1
20100622 e z_find_slides_gig_v2.120100622 e z_find_slides_gig_v2.1
20100622 e z_find_slides_gig_v2.1
 
Solr Search Engine: Optimize Is (Not) Bad for You
Solr Search Engine: Optimize Is (Not) Bad for YouSolr Search Engine: Optimize Is (Not) Bad for You
Solr Search Engine: Optimize Is (Not) Bad for You
 
What is in a Lucene index?
What is in a Lucene index?What is in a Lucene index?
What is in a Lucene index?
 
Tagging search solution design Advanced edition
Tagging search solution design Advanced editionTagging search solution design Advanced edition
Tagging search solution design Advanced edition
 
Lucene BootCamp
Lucene BootCampLucene BootCamp
Lucene BootCamp
 
Building your own search engine with Apache Solr
Building your own search engine with Apache SolrBuilding your own search engine with Apache Solr
Building your own search engine with Apache Solr
 
20130310 solr tuorial
20130310 solr tuorial20130310 solr tuorial
20130310 solr tuorial
 
IT talk SPb "Full text search for lazy guys"
IT talk SPb "Full text search for lazy guys" IT talk SPb "Full text search for lazy guys"
IT talk SPb "Full text search for lazy guys"
 
MPTStore: A Fast, Scalable, and Stable Resource Index
MPTStore: A Fast, Scalable, and Stable Resource IndexMPTStore: A Fast, Scalable, and Stable Resource Index
MPTStore: A Fast, Scalable, and Stable Resource Index
 
Overview of Indexing In Object Oriented Database
Overview of Indexing In Object Oriented DatabaseOverview of Indexing In Object Oriented Database
Overview of Indexing In Object Oriented Database
 
Apache Solr for begginers
Apache Solr for begginersApache Solr for begginers
Apache Solr for begginers
 
Elasticsearch and Spark
Elasticsearch and SparkElasticsearch and Spark
Elasticsearch and Spark
 
Lessons Learned While Scaling Elasticsearch at Vinted
Lessons Learned While Scaling Elasticsearch at VintedLessons Learned While Scaling Elasticsearch at Vinted
Lessons Learned While Scaling Elasticsearch at Vinted
 
San diegophp
San diegophpSan diegophp
San diegophp
 
Assamese search engine using SOLR by Moinuddin Ahmed ( moin )
Assamese search engine using SOLR by Moinuddin Ahmed ( moin )Assamese search engine using SOLR by Moinuddin Ahmed ( moin )
Assamese search engine using SOLR by Moinuddin Ahmed ( moin )
 
Phpconf2008 Sphinx En
Phpconf2008 Sphinx EnPhpconf2008 Sphinx En
Phpconf2008 Sphinx En
 
SH 2 - SES 3 - MongoDB Aggregation Framework.pptx
SH 2 - SES 3 -  MongoDB Aggregation Framework.pptxSH 2 - SES 3 -  MongoDB Aggregation Framework.pptx
SH 2 - SES 3 - MongoDB Aggregation Framework.pptx
 
Presentation
PresentationPresentation
Presentation
 

Último

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

3 Use Cases For eZ Find

  • 1. 3 Use Cases for eZ Find by Ivo Lukač www.netgen.hr/eng
  • 2. Why use eZ Find / Solr?
  • 3. Case 1 – Suggestions while searching TASK Drop down list of suggestions when typing text in search field Needs to be based on content data Arround 300 000 objects Needs to be fast (users are familiar with Google!)
  • 4. Case 1 – Suggestions while searching SOLUTION MySQL queries with LIKE would be to slow eZ Find index was already in place Develop a simple extension using solr facets query with prefix parameter
  • 5. Case 1 – Suggestions while searching SOLR QUERY PARAM rows=0 (standard search results are not needed) facet=on (enable facets) facet.field=ngsuggest_text (facet field defined in ngsuggest.ini) facet.prefix=con (letters user entered) facet.limit=10 (maximal number of suggestions defined in ngsuggest.ini) facet.mincount=1 (minimum occurances for word to show up in suggestions) q=*:* (all index is searched) fq=meta_is_hidden_b:false+AND+meta_is_invisible_b:false (filter conditions: root node id, classes, installation id, .. ) wt=json (return results in JSON format)
  • 6. Case 1 – Suggestions while searching EZ PUBLISH MODULE proxy module (no direct call to Solr) builds query JSON results from solr just outputs
  • 7. Case 1 – Suggestions while searching CLIENT SIDE jQuery JSON suggestsearch component Calls eZ suggestion module over AJAX /ngsuggest/searchsolr?id=[search_id]&keyword=[text] Uses returned JSON to show the list JSON results from solr just outputs
  • 8. Case 1 – Suggestions while searching TUNING ez_df_text not usable Prepare special Solr field just for suggestions
  • 9. Case 1 – Suggestions while searching
  • 10. Case 1 – Suggestions while searching TRY IT OUT NOW http://projects.ez.no/ngsuggest Follow INSTALL.txt
  • 11. Case 2 – Increasing template performance SITUATION big site with lots of logged in users lot of fast changing content standard caching ways not enough needs to be faster
  • 12. Case 2 – Increasing template performance SOLUTION replacing content list/tree function with ezfind search fetch will be faster database will have less queries
  • 13. Case 2 – Increasing template performance BASIC NOTIONS DelayedIndexing OptimizeOnCommit AllowEmptySearch not all data is in the index Shards
  • 14. Case 2 – Increasing template performance FEATURES OF EZFIND FETCH Text searching Offset, limit, sort Facets Filter by class, section, subtree, etc. Ignoring visibility Limitation
  • 15. Case 2 – Increasing template performance FOR TREE Use subtree_array param FOR LIST Use filter -> e.g. main_parent_node_id:2
  • 16. Case 2 – Increasing template performance REPLACEMENT1
  • 17. Case 2 – Increasing template performance REPLACEMENT 2
  • 18. Case 2 – Increasing template performance REPLACEMENT 3
  • 19. Case 2 – Increasing template performance AND BEYOND Text search Facets Boosting Highlighting Spell checking
  • 20. Case 2 – Increasing template performance BENEFITS Speed, speed & speed Score/relevance ranking Additional funcionalities Shards for multilanguage sites No need for extra count fetch More powerful filtering
  • 21. Case 2 – Increasing template performance DRAWBACKS Data dependent on index sync Some sort methods issing No main_node_only switch No class excluding (only in ini) Filtering depends on what data is indexed
  • 22. Case 2 – Increasing template performance MORE DETAILS http://share.ez.no/tutorials FUTURE In next versions of ezfind all object data will be indexed No need to query database at all
  • 23. Case 3 – Geo Search TASK Search for nearest locations Make a mobile interface Use phone location as a reference Needs to be fast 
  • 24. Case 3 – Geo Search PREREQUISITES eZ Find 2.2 with geopoint field type ezgmaplocation extension ezfSolrDocumentFieldGmapLocation class for indexing Problem with dash “-”
  • 25. Case 3 – Geo Search EUCLIDIAN DISTANCE dist()=sqrt((lat1-lat2)2+(lng1-lng2)2) sqedist()=(lat1-lat2)2+(lng1-lng2)2 BOOSTING WITH DISTANCE recip(sqedist(2, point1,point2),1,1,0)
  • 26. Case 3 – Geo Search QUERY TIME BOOSTING _val_:"recip(sqedist(gmaps_coordinates,vector(48.166085,-104.326172)),1,1,0)“ Concat it with search term Result is sorted by distance
  • 27. Case 3 – Geo Search
  • 28. Case 3 – Geo Search MORE DETAILS http://www.netgen.hr/eng/Blog
  • 29. Die ende INSTALLED THE SUGGESTION EXTENSION ? QUESTIONS ?