@@ -38,6 +38,7 @@ class SearchCriteriaBuilder
3838 * @param RequestDataBuilder $localData
3939 * @param SearchCriteriaResolverFactory $criteriaResolverFactory
4040 * @param ArgumentApplierPool $argumentApplierPool
41+ * @param array $partial_search_analyzers
4142 * @SuppressWarnings(PHPMD.ExcessiveParameterList)
4243 */
4344 public function __construct (
@@ -51,6 +52,7 @@ public function __construct(
5152 private readonly RequestDataBuilder $ localData ,
5253 private readonly SearchCriteriaResolverFactory $ criteriaResolverFactory ,
5354 private readonly ArgumentApplierPool $ argumentApplierPool ,
55+ private readonly array $ partial_search_analyzers = []
5456 ) {
5557 }
5658
@@ -117,8 +119,8 @@ private function updateMatchTypeRequestConfig(string $requestName, array $partia
117119 foreach ($ query ['match ' ] ?? [] as $ index => $ matchItem ) {
118120 if (in_array ($ matchItem ['field ' ] ?? null , $ partialMatchFilters , true )) {
119121 $ data ['queries ' ][$ queryName ]['match ' ][$ index ]['matchCondition ' ] = 'match_phrase_prefix ' ;
120- if ($ matchItem ['field ' ] === ' name ' ) {
121- $ data ['queries ' ][$ queryName ]['match ' ][$ index ]['analyzer ' ] = ' prefix_search ' ;
122+ if (array_key_exists ( $ matchItem ['field ' ], $ this -> partial_search_analyzers ) ) {
123+ $ data ['queries ' ][$ queryName ]['match ' ][$ index ]['analyzer ' ] = $ this -> partial_search_analyzers [ $ matchItem [ ' field ' ]] ;
122124 }
123125 }
124126 }
0 commit comments