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

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

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 ?