{"id":1021,"date":"2021-10-22T15:18:50","date_gmt":"2021-10-22T12:18:50","guid":{"rendered":"https:\/\/presta.site\/blog\/utilizzare-la-ricerca-sphinx-in-prestashop\/"},"modified":"2026-06-30T08:52:33","modified_gmt":"2026-06-30T05:52:33","slug":"utilizzare-la-ricerca-sphinx-in-prestashop","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/it\/utilizzare-la-ricerca-sphinx-in-prestashop\/","title":{"rendered":"Utilizzare la ricerca Sphinx in PrestaShop"},"content":{"rendered":"<p>PrestaShop ha un ottimo strumento di ricerca, ma a volte non soddisfa tutte le tue esigenze. Inoltre non \u00e8 molto veloce e nei grandi negozi la ricerca e l&#8217;indicizzazione potrebbero essere molto lente.<\/p>\n<p>Se desideri qualcosa di meglio, puoi utilizzare un&#8217;ottima alternativa &#8211; Sphinx.<\/p>\n<p><!--more--><br \/>\nDa Wikipedia:<\/p>\n<blockquote><p>Sphinx \u00e8 un motore di ricerca Fulltext open source\/software libero progettato per fornire funzionalit\u00e0 di ricerca full-text alle applicazioni client.<\/p><\/blockquote>\n<p>Sito web di Sphinx &#8211; <a href=\"http:\/\/sphinxsearch.com\/\" target=\"_blank\" rel=\"nofollow noopener\">http:\/\/sphinxsearch.com\/<\/a><\/p>\n<h2>Installazione di Sphinx<\/h2>\n<p>Ho usato Debian 8.1. In altre distribuzioni Linux (e in particolar modo in Windows) l&#8217;installazione potrebbe differire leggermente.<br \/>\nSe Sphinx \u00e8 disponibile nei repository, installalo semplicemente:<\/p>\n<div class=\"codecolorer-container bash blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"kw2\">su<\/span><br \/>\n<span class=\"kw2\">apt-get update<\/span><br \/>\n<span class=\"kw2\">apt-get install<\/span> sphinxsearch<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Se Sphinx non \u00e8 disponibile nei repository, puoi scaricare un programma di installazione dal sito ufficiale e installare le dipendenze:<\/p>\n<div class=\"codecolorer-container bash blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"kw2\">apt-get install<\/span> mysql-client unixodbc libpq5<br \/>\n<span class=\"kw2\">wget<\/span> http:<span class=\"sy0\">\/\/<\/span>sphinxsearch.com<span class=\"sy0\">\/<\/span>files<span class=\"sy0\">\/<\/span>sphinxsearch_2.2.9-release-<span class=\"nu0\">1<\/span>~wheezy_i386.deb<br \/>\n<span class=\"kw2\">dpkg<\/span> <span class=\"re5\">-i<\/span> sphinxsearch_2.2.9-release-<span class=\"nu0\">1<\/span>~wheezy_i386.deb<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Devi sostituire il nome e l&#8217;url del programma di installazione con le versioni correnti rilevanti. Sono tutte disponibili sul sito ufficiale.<\/p>\n<h2>Configurazione di Sphinx<\/h2>\n<p>Apri la configurazione di Sphinx e modificala:<\/p>\n<div class=\"codecolorer-container bash blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"kw2\">nano<\/span> <span class=\"sy0\">\/<\/span>etc<span class=\"sy0\">\/<\/span>sphinxsearch<span class=\"sy0\">\/<\/span>sphinx.conf<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Devi modificare il blocco predefinito esistente &#8220;source src1&#8221; (o aggiungere un nuovo blocco). Il risultato dovrebbe apparire cos\u00ec:<\/p>\n<div class=\"codecolorer-container ini blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/><\/div><\/td><td><div class=\"ini codecolorer\">source PrestaSite<br \/>\n<span class=\"br0\">&#123;<\/span><br \/>\n<span class=\"re1\">type<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> mysql<\/span><br \/>\n<span class=\"re1\">sql_host<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> localhost<\/span><br \/>\n# PrestaShop database username<br \/>\n<span class=\"re1\">sql_user<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> DBUSER<\/span><br \/>\n# PrestaShop database password<br \/>\n<span class=\"re1\">sql_pass<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> DBPASSWORD<\/span><br \/>\n# PrestaShop database name<br \/>\n<span class=\"re1\">sql_db<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> DBNAME<\/span><br \/>\n<span class=\"re1\">sql_port<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> 3306 # optional, default is 3306<\/span><br \/>\n<span class=\"re1\">sql_query_pre<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> SET NAMES utf8<\/span><br \/>\n<br \/>\n# MySQL query with list of fields for indexation<br \/>\n<span class=\"re1\">sql_query<\/span> <span class=\"sy0\">=<\/span> <br \/>\nSELECT id_product, name, description, description_short<br \/>\nFROM ps_product_lang<br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Per prima cosa puoi vedere le impostazioni per connettersi al database (<span class=\"bold\">non dimenticare di modificarle con quelle pertinenti<\/span>). Il parametro <span class=\"bold\">sql_query<\/span> contiene una query con i campi per l&#8217;indicizzazione.<\/p>\n<p>Queste sono tutte le impostazioni dalla mia configurazione. Fondamentalmente, il file di configurazione \u00e8 ben documentato e tutte le opzioni sono descritte l\u00ec, in modo da poter personalizzare facilmente la tua configurazione.<\/p>\n<p>Successivamente, nel blocco &#8220;index definition&#8221; devi configurare l&#8217;indice:<\/p>\n<div class=\"codecolorer-container ini blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/><\/div><\/td><td><div class=\"ini codecolorer\">index PrestaSite<br \/>\n<span class=\"br0\">&#123;<\/span><br \/>\n# data source for indexation<br \/>\n<span class=\"re1\">source<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> PrestaSite<\/span><br \/>\n<br \/>\n# location for index data<br \/>\n<span class=\"re1\">path<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> \/var\/lib\/sphinxsearch\/data\/prestasite<\/span><br \/>\n<br \/>\n# morphology preprocessors<br \/>\n<span class=\"re1\">morphology<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> stem_en<\/span><br \/>\n<br \/>\n# minimal word length for indexation<br \/>\n<span class=\"re1\">min_word_len<\/span> <span class=\"sy0\">=<\/span><span class=\"re2\"> 1<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Successivamente puoi vedere i blocchi &#8220;indexer settings&#8221; e &#8220;searchd settings&#8221;. Di solito vanno bene, puoi semplicemente saltarli.<\/p>\n<p><span class=\"bold\">Quindi, abbiamo configurato l&#8217;origine dati (source PrestaSite) e l&#8217;indice (index PrestaSite).<\/span><\/p>\n<h2>Indicizzazione<\/h2>\n<p>Avvia indexer per indicizzare il tuo database:<\/p>\n<div class=\"codecolorer-container bash blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"bash codecolorer\">indexer <span class=\"re5\">--all<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<h2>Avvio di Sphinx<\/h2>\n<p>Non dimenticare di avviare\/riavviare searchd:<\/p>\n<div class=\"codecolorer-container bash blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"bash codecolorer\">searchd<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>E aggiungi indexer a crontab:<\/p>\n<div class=\"codecolorer-container bash blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"nu0\">15<\/span> <span class=\"sy0\">*<\/span> <span class=\"sy0\">*<\/span> <span class=\"sy0\">*<\/span> <span class=\"sy0\">*<\/span> root indexer <span class=\"re5\">--all<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>L&#8217;indicizzazione verr\u00e0 avviata ogni ora.<\/p>\n<h2>Configurazione di PrestaShop<\/h2>\n<p>Di seguito puoi vedere il codice per PrestaShop 1.6. Per le altre versioni di PrestaShop potrebbe differire leggermente.<\/p>\n<p>Crea (o modifica) l&#8217;override della classe Search:<br \/>\n\/override\/classes\/Search.php<\/p>\n<div class=\"codecolorer-container php blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/>99<br \/>100<br \/>101<br \/>102<br \/>103<br \/>104<br \/>105<br \/>106<br \/>107<br \/>108<br \/>109<br \/><\/div><\/td><td><div class=\"php codecolorer\"><span class=\"kw2\">&lt;?php<\/span><br \/>\n<span class=\"kw2\">class<\/span> Search <span class=\"kw2\">extends<\/span> SearchCore <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">public<\/span> static <span class=\"kw2\">function<\/span> find<span class=\"br0\">&#40;<\/span><span class=\"re0\">$id_lang<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$expr<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$page_number<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$page_size<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$order_by<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'position'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$order_way<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'desc'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$ajax<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$use_cookie<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">true<\/span><span class=\"sy0\">,<\/span> Context <span class=\"re0\">$context<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"re0\">$context<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$context<\/span> <span class=\"sy0\">=<\/span> Context<span class=\"sy0\">::<\/span><span class=\"me2\">getContext<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$db<\/span> <span class=\"sy0\">=<\/span> Db<span class=\"sy0\">::<\/span><span class=\"me2\">getInstance<\/span><span class=\"br0\">&#40;<\/span>_PS_USE_SQL_SLAVE_<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ TODO : smart page management<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$page_number<\/span> <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> <span class=\"re0\">$page_number<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$page_size<\/span> <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> <span class=\"re0\">$page_size<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span>Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isOrderBy<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$order_by<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span> <span class=\"sy0\">!<\/span>Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isOrderWay<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$order_way<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span>Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isOrderBy<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$order_by<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span> <span class=\"sy0\">!<\/span>Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isOrderWay<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$order_way<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$start<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$page_number<\/span> <span class=\"sy0\">-<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> <span class=\"re0\">$page_size<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Sphinx search, get ids of found products<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$sphinx_results<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">self<\/span><span class=\"sy0\">::<\/span><span class=\"me2\">getSphinxResults<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$expr<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$start<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$page_size<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$total<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ get products by id if something found<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/is_array\"><span class=\"kw3\">is_array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$sphinx_results<\/span><span class=\"br0\">&#41;<\/span> AND <a href=\"http:\/\/www.php.net\/sizeof\"><span class=\"kw3\">sizeof<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$sphinx_results<\/span><span class=\"br0\">&#41;<\/span> AND <a href=\"http:\/\/www.php.net\/isset\"><span class=\"kw3\">isset<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$sphinx_results<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'total'<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#41;<\/span> AND <span class=\"re0\">$sphinx_results<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'total'<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">&gt;<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$sql<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` manufacturer_name, MAX(product_attribute_shop.`id_product_attribute`) id_product_attribute,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DATEDIFF(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p.`date_add`,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DATE_SUB(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NOW(),<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; INTERVAL '<\/span><span class=\"sy0\">.<\/span><span class=\"br0\">&#40;<\/span>Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isUnsignedInt<\/span><span class=\"br0\">&#40;<\/span>Configuration<span class=\"sy0\">::<\/span><span class=\"me2\">get<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_NB_DAYS_NEW_PRODUCT'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> ? Configuration<span class=\"sy0\">::<\/span><span class=\"me2\">get<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_NB_DAYS_NEW_PRODUCT'<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">:<\/span> <span class=\"nu0\">20<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">' DAY<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) &gt; 0 new<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM '<\/span><span class=\"sy0\">.<\/span>_DB_PREFIX_<span class=\"sy0\">.<\/span><span class=\"st_h\">'product p<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '<\/span><span class=\"sy0\">.<\/span>Shop<span class=\"sy0\">::<\/span><span class=\"me2\">addSqlAssociation<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'product'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'p'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; INNER JOIN `'<\/span><span class=\"sy0\">.<\/span>_DB_PREFIX_<span class=\"sy0\">.<\/span><span class=\"st_h\">'product_lang` pl ON (<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p.`id_product` = pl.`id_product`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AND pl.`id_lang` = '<\/span><span class=\"sy0\">.<\/span><span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span><span class=\"re0\">$id_lang<\/span><span class=\"sy0\">.<\/span>Shop<span class=\"sy0\">::<\/span><span class=\"me2\">addSqlRestrictionOnLang<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'pl'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LEFT JOIN `'<\/span><span class=\"sy0\">.<\/span>_DB_PREFIX_<span class=\"sy0\">.<\/span><span class=\"st_h\">'product_attribute` pa ON (p.`id_product` = pa.`id_product`)<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '<\/span><span class=\"sy0\">.<\/span>Shop<span class=\"sy0\">::<\/span><span class=\"me2\">addSqlAssociation<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'product_attribute'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'pa'<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'product_attribute_shop.`default_on` = 1'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '<\/span><span class=\"sy0\">.<\/span>Product<span class=\"sy0\">::<\/span><span class=\"me2\">sqlStock<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'p'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'product_attribute_shop'<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$context<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">shop<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LEFT JOIN `'<\/span><span class=\"sy0\">.<\/span>_DB_PREFIX_<span class=\"sy0\">.<\/span><span class=\"st_h\">'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LEFT JOIN `'<\/span><span class=\"sy0\">.<\/span>_DB_PREFIX_<span class=\"sy0\">.<\/span><span class=\"st_h\">'image` i ON (i.`id_product` = p.`id_product`)'<\/span><span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Shop<span class=\"sy0\">::<\/span><span class=\"me2\">addSqlAssociation<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'image'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'i'<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'image_shop.cover=1'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">'<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LEFT JOIN `'<\/span><span class=\"sy0\">.<\/span>_DB_PREFIX_<span class=\"sy0\">.<\/span><span class=\"st_h\">'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '<\/span><span class=\"sy0\">.<\/span><span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span><span class=\"re0\">$id_lang<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">')<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WHERE p.`id_product` IN('<\/span><span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/implode\"><span class=\"kw3\">implode<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">','<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$sphinx_results<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'results'<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">')<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GROUP BY product_shop.id_product'<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">executeS<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$sql<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ results count<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$total<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$sphinx_results<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">'total'<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"re0\">$result<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$result_properties<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span> <span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$result_properties<\/span> <span class=\"sy0\">=<\/span> Product<span class=\"sy0\">::<\/span><span class=\"me2\">getProductsProperties<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span><span class=\"re0\">$id_lang<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$result<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'total'<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$total<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'result'<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$result_properties<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">protected<\/span> static <span class=\"kw2\">function<\/span> getSphinxResults<span class=\"br0\">&#40;<\/span><span class=\"re0\">$search_query<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$page_number<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$page_size<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$results<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$total<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><span class=\"re0\">$search_query<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ connect to Sphinx database<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$link<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/mysqli_connect\"><span class=\"kw3\">mysqli_connect<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'127.0.0.1'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">''<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">''<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">''<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'9306'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$link<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$query<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'SELECT * FROM `PrestaSite` WHERE MATCH('<\/span><span class=\"st_h\">'.pSQL($search_query).'<\/span><span class=\"st_h\">') limit '<\/span><span class=\"sy0\">.<\/span><span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span><span class=\"re0\">$page_number<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">', '<\/span><span class=\"sy0\">.<\/span><span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span><span class=\"re0\">$page_size<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">';'<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$link<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$query<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">while<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$query_results<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch_array<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$results<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array_merge\"><span class=\"kw3\">array_merge<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$results<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$query_results<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"coMULTI\">\/* clear result *\/<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">close<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ get count of results<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$query_total<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'SELECT count(*) FROM `PrestaSite` WHERE MATCH('<\/span><span class=\"st_h\">'.pSQL($search_query).'<\/span><span class=\"st_h\">');'<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$result<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$link<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$query_total<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$total<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span>int<span class=\"br0\">&#41;<\/span><span class=\"re0\">$result<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch_array<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#91;<\/span><span class=\"nu0\">0<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$total<\/span> <span class=\"sy0\">&gt;<\/span> <span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$total<\/span> <span class=\"sy0\">=<\/span> <span class=\"nu0\">1000<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/mysqli_close\"><span class=\"kw3\">mysqli_close<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$link<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'results'<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$results<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'total'<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$total<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Sostanzialmente, il codice \u00e8 piuttosto semplice. Sovrascriviamo la funzione &#8220;find&#8221;, nella quale sostituiamo la ricerca di PrestaShop con la ricerca Sphinx. Sphinx restituisce gli id dei prodotti e utilizzando tali id eseguiamo la query dei dati dei prodotti. La seconda funzione (getSphinxResults) esegue direttamente la ricerca.<\/p>\n<p>Alla fine, devi svuotare la cache e rimuovere la cache delle classi (\/cache\/class_index.php). Tutto fatto!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PrestaShop ha un ottimo strumento di ricerca, ma a volte non soddisfa tutte le tue esigenze. Inoltre non \u00e8 molto veloce e nei grandi negozi la ricerca e l&#8217;indicizzazione potrebbero essere molto lente. Se desideri qualcosa di meglio, puoi utilizzare un&#8217;ottima alternativa &#8211; Sphinx.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[140],"tags":[],"class_list":["post-1021","post","type-post","status-publish","format-standard","hentry","category-sviluppo"],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/comments?post=1021"}],"version-history":[{"count":0,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1021\/revisions"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=1021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=1021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=1021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}