mirror of
https://github.com/jbcr/SyliusElasticsearchPlugin.git
synced 2026-03-24 00:42:08 +01:00
Merge pull request #209 from pbalcerzak/OPSRC-684/fuzziness_as_parameter
OPSRC-684/Made fuzziness configurable
This commit is contained in:
@@ -21,6 +21,8 @@ final class SearchProductsQueryBuilderSpec extends ObjectBehavior
|
||||
|
||||
private $hasChannelQuery;
|
||||
|
||||
private $fuzziness;
|
||||
|
||||
function let(
|
||||
SearchPropertyNameResolverRegistryInterface $searchPropertyNameResolverRegistry,
|
||||
LocaleContextInterface $localeContext,
|
||||
@@ -35,11 +37,13 @@ final class SearchProductsQueryBuilderSpec extends ObjectBehavior
|
||||
$this->hasChannelQuery = new Terms('channels');
|
||||
$this->hasChannelQuery->setTerms(['web_us']);
|
||||
$hasChannelQueryBuilder->buildQuery([])->willReturn($this->hasChannelQuery);
|
||||
$this->fuzziness = 'AUTO';
|
||||
$this->beConstructedWith(
|
||||
$searchPropertyNameResolverRegistry,
|
||||
$localeContext,
|
||||
$isEnabledQueryBuilder,
|
||||
$hasChannelQueryBuilder
|
||||
$hasChannelQueryBuilder,
|
||||
$this->fuzziness
|
||||
);
|
||||
}
|
||||
|
||||
@@ -67,7 +71,7 @@ final class SearchProductsQueryBuilderSpec extends ObjectBehavior
|
||||
{
|
||||
$expectedMultiMatch = new MultiMatch();
|
||||
$expectedMultiMatch->setQuery('bmw');
|
||||
$expectedMultiMatch->setFuzziness('AUTO');
|
||||
$expectedMultiMatch->setFuzziness($this->fuzziness);
|
||||
$expectedMultiMatch->setFields([]);
|
||||
$expectedQuery = new BoolQuery();
|
||||
$expectedQuery->addMust($expectedMultiMatch);
|
||||
@@ -89,7 +93,7 @@ final class SearchProductsQueryBuilderSpec extends ObjectBehavior
|
||||
);
|
||||
$expectedMultiMatch = new MultiMatch();
|
||||
$expectedMultiMatch->setQuery('bmw');
|
||||
$expectedMultiMatch->setFuzziness('AUTO');
|
||||
$expectedMultiMatch->setFuzziness($this->fuzziness);
|
||||
$expectedMultiMatch->setFields(['property_1_en_us', 'property_2_en_us']);
|
||||
$expectedQuery = new BoolQuery();
|
||||
$expectedQuery->addMust($expectedMultiMatch);
|
||||
|
||||
@@ -32,16 +32,21 @@ final class SearchProductsQueryBuilder implements QueryBuilderInterface
|
||||
/** @var QueryBuilderInterface */
|
||||
private $hasChannelQueryBuilder;
|
||||
|
||||
/** @var string */
|
||||
private $fuzziness;
|
||||
|
||||
public function __construct(
|
||||
SearchPropertyNameResolverRegistryInterface $searchProperyNameResolverRegistry,
|
||||
LocaleContextInterface $localeContext,
|
||||
QueryBuilderInterface $isEnabledQueryBuilder,
|
||||
QueryBuilderInterface $hasChannelQueryBuilder
|
||||
QueryBuilderInterface $hasChannelQueryBuilder,
|
||||
string $fuzziness
|
||||
) {
|
||||
$this->searchProperyNameResolverRegistry = $searchProperyNameResolverRegistry;
|
||||
$this->localeContext = $localeContext;
|
||||
$this->isEnabledQueryBuilder = $isEnabledQueryBuilder;
|
||||
$this->hasChannelQueryBuilder = $hasChannelQueryBuilder;
|
||||
$this->fuzziness = $fuzziness;
|
||||
}
|
||||
|
||||
public function buildQuery(array $data): ?AbstractQuery
|
||||
@@ -68,7 +73,7 @@ final class SearchProductsQueryBuilder implements QueryBuilderInterface
|
||||
|
||||
$multiMatch = new MultiMatch();
|
||||
$multiMatch->setQuery($query);
|
||||
$multiMatch->setFuzziness('AUTO');
|
||||
$multiMatch->setFuzziness($this->fuzziness);
|
||||
$fields = [];
|
||||
foreach ($this->searchProperyNameResolverRegistry->getPropertyNameResolvers() as $propertyNameResolver) {
|
||||
$fields[] = $propertyNameResolver->resolvePropertyName($this->localeContext->getLocaleCode());
|
||||
|
||||
@@ -10,6 +10,7 @@ parameters:
|
||||
|
||||
bitbag_es_pagination_available_page_limits: [9, 18, 36]
|
||||
bitbag_es_pagination_default_limit: 9
|
||||
bitbag_es_fuzziness: AUTO
|
||||
|
||||
fos_elastica:
|
||||
clients:
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
<argument type="service" id="sylius.context.locale" />
|
||||
<argument type="service" id="bitbag_sylius_elasticsearch_plugin.query_builder.is_enabled" />
|
||||
<argument type="service" id="bitbag_sylius_elasticsearch_plugin.query_builder.has_channel" />
|
||||
<argument>%bitbag_es_fuzziness%</argument>
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
||||
Reference in New Issue
Block a user