У меня есть требование создать список возможных дубликатов, прежде чем пользователь сохранит объект в базе данных и предупредит их о возможных дубликатах.Эффективная проверка возможных повторяющихся объектов
Есть 7 критериев, по которым мы должны проверять дубликаты и если не менее 3 совпадений, мы должны отметить это до пользователя. Критерии будут совпадать по идентификатору, поэтому вам не понадобится сопряжение с нечеткой строкой, но моя проблема возникает из-за того, что существует множество возможных способов (99 способов, если я сделал свои суммы corerctly), по крайней мере, для 3 элементов, которые соответствуют список из 7 возможных.
Я не хочу делать 99 отдельных запросов на поиск, чтобы найти результаты поиска, и я также не хочу вернуть всю партию обратно из db и фильтровать на стороне клиента. Мы, вероятно, сейчас говорим о нескольких десятках тысяч записей в настоящее время, но это будет расти в миллионы по мере созревания системы.
Кто-нибудь получил хоть какой-нибудь хороший эффективный способ сделать это? Я рассматривал простой запрос OR, чтобы получить записи, где по крайней мере одно поле соответствует из db, а затем выполняет некоторую обработку на клиенте, чтобы отфильтровать его еще несколько, но некоторые из полей имеют очень низкую мощность и на самом деле не будут уменьшить количество на огромную сумму.
Благодаря Джон
Спасибо, подумайте, что это похоже на лучшее решение для моей проблемы. Нам по-прежнему придется делать группу на множестве с множеством элементов, но выполнение небольшого тестирования кажется более быстрым, чем другие способы, которые я пробовал. – JonC