Есть ли другой способ реализовать функцию поиска без упора поиска в Java - PullRequest
0 голосов
/ 04 сентября 2018

Я начинающий разработчик для веб-сервера. Я разработал приложение для магазина, чтобы управлять своими заказами. Здесь возникает вопрос. У меня есть таблица заказов, как:

orderId,orderNumber …

заказать столик типа

orderProductId, productId, productNumber, productName, productDescription.

У меня есть функция поиска, которая получает все заказы с помощью searchString. API похож на

Get /api/orders?productNumberSearch={searchStr}&productNameSearch={searchStr2}&productDescriptionSearch={searchStr3}

Мой Импл похож на

String queryStr1 = getParameterFromRequestWithDefault(“productNumberSearch”,”");
String queryStr2 = getParameterFromRequestWithDefault(“productNameSearch”,”");
String queryStr3 = getParameterFromRequestWithDefault(“productDescriptionSearch”,”");
List<OrderProduct> orderProducts = getAllOrderProductsFromDatabase();
List<Interger> filterOrderIds = orderProducts.stream().filter(item->{ 
    return item.getName().contains(queryStr1) && item.getNumber().contains(queryStr2) &&  item.getDescription().contains(queryStr3)
 }).collect(Collectors.toList());
List<Order> orders = getOrdersByIds(filterOrderIds);

Я использую Spring MVC и MySQL. Коды выше работает. Однако, если одновременно поступает много запросов, исключение нехватки памяти будет выдано. Если в базе данных есть иероглифы, полнотекстовый поиск mysql не работает? Так есть ли другой способ реализовать функцию поиска без упора поиска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...