SlideShare une entreprise Scribd logo
1  sur  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 ?

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

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 ?