Releases: k-samuel/faceted-search
2.1.3
2.1.2
2.1.1
Performance update
- Index Refactoring. Some methods moved from Search into Index
- FixedArrayIndex performance patches. Index access is faster than "foreach" iteration
PHPBench v2.1.1 ArrayIndex PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~6Mb | ~0.0003 s. | ~0.002 s. | ~0.0001 s. | 907 |
50,000 | ~40Mb | ~0.001 s. | ~0.013 s. | ~0.0005 s. | 4550 |
100,000 | ~80Mb | ~0.003 s. | ~0.028 s. | ~0.001 s. | 8817 |
300,000 | ~189Mb | ~0.011 s. | ~0.100 s. | ~0.004 s. | 26891 |
1,000,000 | ~657Mb | ~0.047 s. | ~0.387 s. | ~0.018 s. | 90520 |
PHPBench v2.1.0 ArrayIndex PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~6Mb | ~0.0003 s. | ~0.002 s. | ~0.0001 s. | 907 |
50,000 | ~40Mb | ~0.001 s. | ~0.013 s. | ~0.0005 s. | 4550 |
100,000 | ~80Mb | ~0.003 s. | ~0.030 s. | ~0.001 s. | 8817 |
300,000 | ~189Mb | ~0.011 s. | ~0.101 s. | ~0.005 s. | 26891 |
1,000,000 | ~657Mb | ~0.049 s. | ~0.396 s. | ~0.017 s. | 90520 |
PHPBench v2.1.1 FixedArrayIndex PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~2Mb | ~0.0007 s. | ~0.004 s. | ~0.0001 s. | 907 |
50,000 | ~12Mb | ~0.003 s. | ~0.024 s. | ~0.0009 s. | 4550 |
100,000 | ~23Mb | ~0.006 s. | ~0.049 s. | ~0.001 s. | 8817 |
300,000 | ~70Mb | ~0.019 s. | ~0.151 s. | ~0.006 s. | 26891 |
1,000,000 | ~233Mb | ~0.078 s. | ~0.565 s. | ~0.024 s. | 90520 |
PHPBench v2.1.0 FixedArrayIndex PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~2Mb | ~0.0007 s. | ~0.006 s. | ~0.0002 s. | 907 |
50,000 | ~12Mb | ~0.003 s. | ~0.027 s. | ~0.001 s. | 4550 |
100,000 | ~23Mb | ~0.006 s. | ~0.057 s. | ~0.002 s. | 8817 |
300,000 | ~70Mb | ~0.021 s. | ~0.188 s. | ~0.007 s. | 26891 |
1,000,000 | ~233Mb | ~0.080 s. | ~0.674 s. | ~0.032 s. | 90520 |
2.1.0
Performance update and FixedArrayIndex
FixedArrayIndex is much slower than ArrayIndex but requires significant less memory.
- FixedArrayIndex added
- KSamuel\FacetedSearch\Index is deprecated use KSamuel\FacetedSearch\Index\ArrayIndex instead
- Unit and performance tests for FixedArrayIndex
- Added sorting of filter fields before processing (performance)
- Documentation updated
PHPBench v2.1.0 ArrayIndex PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~6Mb | ~0.0003 s. | ~0.002 s. | ~0.0001 s. | 907 |
50,000 | ~40Mb | ~0.001 s. | ~0.013 s. | ~0.0005 s. | 4550 |
100,000 | ~80Mb | ~0.003 s. | ~0.030 s. | ~0.001 s. | 8817 |
300,000 | ~189Mb | ~0.011 s. | ~0.101 s. | ~0.005 s. | 26891 |
1,000,000 | ~657Mb | ~0.049 s. | ~0.396 s. | ~0.017 s. | 90520 |
PHPBench v2.1.0 FixedArrayIndex PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~2Mb | ~0.0007 s. | ~0.006 s. | ~0.0002 s. | 907 |
50,000 | ~12Mb | ~0.003 s. | ~0.027 s. | ~0.001 s. | 4550 |
100,000 | ~23Mb | ~0.006 s. | ~0.057 s. | ~0.002 s. | 8817 |
300,000 | ~70Mb | ~0.021 s. | ~0.188 s. | ~0.007 s. | 26891 |
1,000,000 | ~233Mb | ~0.080 s. | ~0.674 s. | ~0.032 s. | 90520 |
2.0.3
Performance update
- Filter\ValueFilter optimizations
- Sorter\ByField optimizations
- Search->findRecordsMap optimizations
- PHPBench tests added
PHPBench v2.0.3 PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~6Mb | ~0.0003 s. | ~0.002 s. | ~0.0001 s. | 907 |
50,000 | ~40Mb | ~0.001 s. | ~0.013 s. | ~0.0006 s. | 4550 |
100,000 | ~80Mb | ~0.003 s. | ~0.029 s. | ~0.001 s. | 8817 |
300,000 | ~189Mb | ~0.011 s. | ~0.108 s. | ~0.005 s. | 26891 |
1,000,000 | ~657Mb | ~0.052 s. | ~0.419 s. | ~0.018 s. | 90520 |
Bench v2.0.0 PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~6Mb | ~0.0007 s. | ~0.004 s. | ~0.0005 s. | 907 |
50,000 | ~40Mb | ~0.002 s. | ~0.014 s. | ~0.001 s. | 4550 |
100,000 | ~80Mb | ~0.004 s. | ~0.028 s. | ~0.001 s. | 8817 |
300,000 | ~189Mb | ~0.011 s. | ~0.104 s. | ~0.006 s. | 26891 |
1,000,000 | ~657Mb | ~0.050 s. | ~0.426 s. | ~0.030 s. | 90520 |
2.0.2
2.0.1
2.0.0
Performance update
Reduced Index memory usage.
Backward incompatibility, faceted index should be reindex before using new version of library.
Bench v2.0.0 PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~6Mb | ~0.0007 s. | ~0.004 s. | ~0.0005 s. | 907 |
50,000 | ~40Mb | ~0.002 s. | ~0.014 s. | ~0.001 s. | 4550 |
100,000 | ~80Mb | ~0.004 s. | ~0.028 s. | ~0.001 s. | 8817 |
300,000 | ~189Mb | ~0.011 s. | ~0.104 s. | ~0.006 s. | 26891 |
1,000,000 | ~657Mb | ~0.050 s. | ~0.426 s. | ~0.030 s. | 90520 |
Bench v1.3.3 PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~7Mb | ~0.0007 s. | ~0.004 s. | ~0.0003 s. | 907 |
50,000 | ~49Mb | ~0.002 s. | ~0.014 s. | ~0.0009 s. | 4550 |
100,000 | ~98Mb | ~0.004 s. | ~0.028 s. | ~0.002 s. | 8817 |
300,000 | ~242Mb | ~0.012 s. | ~0.112 s. | ~0.007 s. | 26891 |
1,000,000 | ~812Mb | ~0.057 s. | ~0.443 s. | ~0.034 s. | 90520 |
1.3.4
- bugfix
$search->findAcceptableFilters([],[1,2,3]);
returns empty results for empty filters and none empty id list in arguments.
Thanks to @chrisvidal for reporting.
2.0.0-beta1
Performance update
Reduced Index memory usage.
Backward incompatibility, faceted index should be reindex before using new version of library.
Bench v2.0.0 PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~6Mb | ~0.0007 s. | ~0.004 s. | ~0.0005 s. | 907 |
50,000 | ~40Mb | ~0.002 s. | ~0.014 s. | ~0.001 s. | 4550 |
100,000 | ~80Mb | ~0.004 s. | ~0.028 s. | ~0.001 s. | 8817 |
300,000 | ~189Mb | ~0.011 s. | ~0.104 s. | ~0.006 s. | 26891 |
1,000,000 | ~657Mb | ~0.050 s. | ~0.426 s. | ~0.030 s. | 90520 |
Bench v1.3.3 PHP 8.1.0 + JIT + opcache (no xdebug extension)
Items count | Memory | Find | Get Filters (aggregates) | Sort by field | Results Found |
---|---|---|---|---|---|
10,000 | ~7Mb | ~0.0007 s. | ~0.004 s. | ~0.0003 s. | 907 |
50,000 | ~49Mb | ~0.002 s. | ~0.014 s. | ~0.0009 s. | 4550 |
100,000 | ~98Mb | ~0.004 s. | ~0.028 s. | ~0.002 s. | 8817 |
300,000 | ~242Mb | ~0.012 s. | ~0.112 s. | ~0.007 s. | 26891 |
1,000,000 | ~812Mb | ~0.057 s. | ~0.443 s. | ~0.034 s. | 90520 |