SlideShare uma empresa 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 ?

Mais conteúdo relacionado

Semelhante 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
 

Semelhante 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

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
Overkill Security
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Último (20)

Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 

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 ?