ppl / module-search-intelligence-hv
Standalone PPL Search Intelligence HV storefront package for Magento 2, compatible with Hyvä-based storefronts, with canonical search results, query understanding, explainable ranking, overlay search UI and optional Discovery Filters HV integration.
PPL Search Intelligence HV for Magento 2
PPL Search Intelligence HV owns intelligent Magento search results with query understanding, indexed product signals, MySQL candidate collection, explainable ranking, redirects, zero-result recovery, and optional Discovery Filters integration.
What It Adds
- Canonical search page and overlay product basis
- Indexing, backend routing, Redis/OpenSearch/MySQL options, query rules, behavior/ranking tuning, and profiler diagnostics
- Synonyms, corrections, zero-result recovery, redirect rules, and Test Lab screens
Requirements And Dependencies
- PHP: >=8.1
- Magento packages: magento/framework, magento/module-advanced-search, magento/module-backend, magento/module-catalog, magento/module-catalog-inventory, magento/module-catalog-search, magento/module-config, magento/module-configurable-product, magento/module-cron, magento/module-customer, magento/module-eav, magento/module-inventory-sales, magento/module-inventory-sales-api, magento/module-message-queue, magento/module-review, magento/module-sales, magento/module-search, magento/module-store
- PPL packages: ppl/module-hub
- Conflict: do not enable together with
Ppl_ScoredSearchorPpl_SearchIntelligencebecause the modules try to control the same search surface.
Installation
Install the required PPL packages in dependency order. Composer will skip packages that are already installed:
composer require ppl/module-hub ppl/module-search-intelligence-hv
bin/magento module:enable Ppl_Hub Ppl_SearchIntelligenceHV
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:clean
Manual app/code installation: copy the dependency modules and this module into app/code/Ppl in this order: Ppl/Hub -> Ppl/SearchIntelligenceHV. Then run the same Magento commands starting with bin/magento module:enable.
First Use
- Disable Ppl_ScoredSearch and Ppl_SearchIntelligence before enabling SearchIntelligenceHV because these modules own the same search surface.
- Build the SearchIntelligenceHV index before enabling the master switch, storefront suggestions, or search page ownership.
- Run SearchIntelligenceHV index/rebuild commands or admin operations after installation.
- Pair with DiscoveryFiltersHV only when you want filtered facets inside the SearchIntelligenceHV product basis.
Admin entry: PPL Hub > PPL Search Intelligence.
Integrations And Boundaries
- Optionally cooperates with Ppl_DiscoveryFiltersHV through the neutral ppl_searchintelligence_filter_integration event.
- Uses Ppl_Hub for navigation and for the neutral capability contract that shares search-page ownership and the materialized result set with Discovery Filters — SI reads the Discovery Filters index and publishes its result set through Hub capabilities, not sibling-module internals — plus Magento search/catalog modules for runtime data. Async indexing uses Magento_MessageQueue and requires a configured queue broker such as RabbitMQ when async mode is enabled.
- HV overlay filters render the price filter as min/max fields. Discovery Filters installations that use a slider or fields-and-slider presentation are intentionally degraded to fields inside the overlay.
- Stable: run the documented PPL release gates (setup:upgrade, di:compile, PHPUnit, SCD, production mode) in your environment before publishing this package.
Localization
The package includes translation CSV files for 12 locales: de_DE, en_US, es_ES, fr_FR, it_IT, ja_JP, nl_NL, pl_PL, pt_BR, ru_RU, tr_TR, zh_CN.
Customer Documentation
Customer-facing User Guides and Marketplace Long Descriptions are maintained outside the Magento module package in the repository-level docs/user_guides and docs/long_descriptions folders. The module package itself intentionally keeps only this technical README plus developer-relevant files.
Support
Support contact: [email protected]. Include the module version, Magento version, enabled PPL companion modules, and the relevant admin or storefront screenshot when reporting an issue.
Changelog
1.2.0
- Split Search Intelligence HV into a standalone package that conflicts with the Luma SearchIntelligence package and owns the Hyvä-based storefront search surface independently.
- Restored the admin Test Lab controllers for query run, request profile and benchmark AJAX actions.
- Stabilized the HV overlay shell with safer native-search fallback timing, focus handling,
aria-modaltoggling and private-content reload behavior. - Improved overlay placement for visible compatible storefront header search triggers while keeping mobile fullscreen independent from under-input positioning.
- Kept the overlay price filter on min/max fields and documented the intentional degradation from slider presentations.
1.0.0
- Initial Engine Lab release.
- Added query understanding, MySQL candidate provider, explainable ranking and product signal rebuilds.
- Added admin Test Lab, hub-only configuration sections, CLI commands, cron jobs and core schema tables.
- Added optional configurable storefront suggestions, Discovery Filters integration and read-only internal provider status.
- Search result pages use Search Intelligence as the canonical product basis for product list rendering, Discovery Filters, toolbar totals, pagination and sorting.
- Added overlay fast-path payload mapping, action payload slimming, optional payload pruning and profiler payload parity.
- Added behavior-aware ranking gates that consume aggregated behavior signals; storefront behavior collection, impression tracking and purchase/return attribution are owned by the optional Ppl_TrackingHV module.
- Added Smart Discovery P0 payload support as an additive, read-only overlay field.
- Added Test Lab timing help and request-path details while keeping winner/loser row backgrounds neutral and limiting colored highlights to metric cells.
- Routed Search Intelligence <-> Discovery Filters cooperation through neutral Ppl_Hub capabilities: SI exposes the canonical search product set via the Hub SearchPageProductSetProviderInterface bridge and reads facet/filter data via the Hub FilterIndexReaderInterface, instead of reading a sibling module's tables.
- Declared an explicit magento/module-cron dependency and Magento_Cron load-order sequence so the bundled cron jobs (index bootstrap/rebuild, signal rebuild, knowledge-pack compile, result-set purge, async dispatch/advance) load deterministically.
- Normalized every ranking component to a common [0,1] scale before weighting, retuned the shipped default weights, and added a data patch that calibrates stored per-scope weight overrides onto the new scale so existing merchant tuning is preserved.
- Added optional async index rebuilds that fan a catalog rebuild out to the Magento message queue (one message per product batch, version-swapped only when complete) with a transactional outbox, per-minute dispatch/advance cron jobs and a broker-availability probe; falls back to the synchronous rebuild when no broker is configured.
- Extended product signal scoring with freshness (recency), return-rate, click-through and search-conversion terms and lifted the signal scale cap so strong products no longer saturate.
- Added search smoke/profile/recall diagnostic and corpus/benchmark/seed CLI commands that exercise the live SI + Discovery Filters result path through the Hub filter-index reader.
Requires 30
| Package | Constraint |
|---|---|
| ext-ctype | * |
| ext-curl | * |
| ext-hash | * |
| ext-mbstring | * |
| magento/framework | >=103.0.7 <104.0.0 |
| magento/module-advanced-search | >=100.4.0 <101.0.0 |
| magento/module-backend | >=102.0.0 <103.0.0 |
| magento/module-catalog | >=104.0.0 <105.0.0 |
| magento/module-catalog-inventory | >=100.4.0 <101.0.0 |
| magento/module-catalog-search | >=102.0.0 <103.0.0 |
| magento/module-checkout | >=100.4.0 <101.0.0 |
| magento/module-config | >=101.2.0 <102.0.0 |
| magento/module-configurable-product | >=100.4.0 <101.0.0 |
| magento/module-cron | >=100.4.0 <101.0.0 |
| magento/module-customer | >=103.0.0 <104.0.0 |
| magento/module-eav | >=102.1.0 <103.0.0 |
| magento/module-inventory-sales | >=1.2.0 <2.0.0 |
| magento/module-inventory-sales-api | >=1.2.0 <2.0.0 |
| magento/module-message-queue | >=100.4.0 <101.0.0 |
| magento/module-review | >=100.4.0 <101.0.0 |
| magento/module-sales | >=103.0.0 <104.0.0 |
| magento/module-search | >=101.1.0 <102.0.0 |
| magento/module-store | >=101.1.0 <102.0.0 |
| magento/module-ui | >=101.2.0 <102.0.0 |
| magento/module-wishlist | >=101.2.0 <102.0.0 |
| php | >=8.1 |
| ppl/module-hub | ^1.2 |
| psr/log | ^1.0 || ^2.0 || ^3.0 |
| symfony/console | ^6.4 || ^7.0 |
| symfony/process | ^6.4 |
Conflicts 2
| Package | Constraint |
|---|---|
| ppl/module-scored-search | ^1.2 |
| ppl/module-search-intelligence | * |
Compatibility
Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.
Code Quality
Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge. A phpcs finding can't make a module incompatible.
Static analysis
Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.
| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Fail | 519 | 1 error, 518 warnings (ruleset: Magento2), 19 auto-fixable with phpcbf |
| PHPMD | Warning | 217 | 217 rule violations (MissingImport:84, NPathComplexity:40, CyclomaticComplexity:37, ExcessiveMethodLength:15, ExcessiveClassComplexity:11) |
| Cpd | Warning | 11 | 11 duplicated chunks spanning 431 total lines (min-lines=5, min-tokens=70) |
| Composer validate | Info | 1 | valid; 1 advisory note (composer validate --strict) |
PHPStan
Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases.
Tests
Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.
Unit tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Integration tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Security
Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.
More from Pawel Pliousnin Digital Solutions
View vendorFoundation and anchor infrastructure for modular PPL admin reports; individual PPL report modules provide the actual reports.
Admin action board for Magento 2 that turns shop and PPL report signals into severity-scored task cards.
Standalone PPL Tracking & Privacy HV storefront package for Magento 2, compatible with Hyvä-based storefronts, with consent-aware behavioural tracking and data-subject tooling.
Privacy-first behavioural tracking, consent management and EU/DE data-subject-rights tooling. Requires Ppl_Hub and remains independent of search and filter modules.
Turn an existing module into recurring revenue.
If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.