diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php
index c29987ac089cf4a696326f88fd1cd1279bd17fc5..f5af51a290709f05d80d5909bd93a24e10f8ab12 100755
--- a/src/core/controllers/AutoCompleteController.php
+++ b/src/core/controllers/AutoCompleteController.php
@@ -693,20 +693,42 @@ class AutoCompleteController
     public static function getBanAddresses(Request $request, Response $response)
     {
         $data = $request->getQueryParams();
-        $data['address'] = TextFormatModel::normalize(['string' => str_replace(['*', '~', '-', '\'', '"', '(', ')', ';', '/', '\\'], ' ', $data['address'])]);
-
         $check = Validator::stringType()->notEmpty()->validate($data['address']);
         $check = $check && Validator::stringType()->notEmpty()->validate($data['department']);
         if (!$check) {
             return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
         }
 
+        $data['address'] = TextFormatModel::normalize(['string' => str_replace(['*', '~', '-', '\'', '"', '(', ')', ';', '/', '\\'], ' ', $data['address'])]);
+        $addressWords = explode(' ', $data['address']);
+        foreach ($addressWords as $key => $value) {
+            if (mb_strlen($value) <= 2 && !is_numeric($value)) {
+                unset($addressWords[$key]);
+                continue;
+            }
+        }
+        $data['address'] = implode(' ', $addressWords);
+        if (empty($data['address'])) {
+            return $response->withJson([]);
+        }
+
         $useSectors = ParameterModel::getById(['id' => 'useSectorsForAddresses', 'select' => ['param_value_int']]);
         if (!empty($useSectors['param_value_int']) && $useSectors['param_value_int'] == 1) {
-            $data['address'] = str_replace(' ', '%', $data['address']);
+            $addressFieldNames = ['address_number', 'address_street', 'address_postcode', 'address_town'];
+            $fields = AutoCompleteController::getInsensitiveFieldsForRequest([
+                'fields' => $addressFieldNames
+            ]);
+            $requestData = AutoCompleteController::getDataForRequest([
+                'search'       => $data['address'],
+                'fields'       => $fields,
+                'fieldsNumber' => count($addressFieldNames),
+                'where'        => [],
+                'data'         => []
+            ]);
             $hits = ContactAddressSectorModel::get([
                 'select'  => ['address_number', 'address_street', 'address_postcode', 'address_town', 'label', 'ban_id'],
-                'where'   => ["unaccent(concat(address_number, ' ', address_street, ' ', address_postcode, ' ', address_town)) ilike '%{$data['address']}%'"],
+                'where'   => $requestData['where'],
+                'data'    => $requestData['data'],
                 'orderBy' => ['id desc'],
                 'limit'   => 100
             ]);
@@ -743,21 +765,6 @@ class AutoCompleteController
         $index = \Zend_Search_Lucene::open($path);
         \Zend_Search_Lucene::setResultSetLimit(100);
 
-        $aAddress = explode(' ', $data['address']);
-        foreach ($aAddress as $key => $value) {
-            if (mb_strlen($value) <= 2 && !is_numeric($value)) {
-                unset($aAddress[$key]);
-                continue;
-            }
-            if (mb_strlen($value) >= 3 && $value != 'rue' && $value != 'avenue' && $value != 'boulevard') {
-                $aAddress[$key] .= '*';
-            }
-        }
-        $data['address'] = implode(' ', $aAddress);
-        if (empty($data['address'])) {
-            return $response->withJson([]);
-        }
-
         $hits = $index->find($data['address']);
 
         $addresses = [];