У меня есть прецедент, где мне нужно выполнить сложное сопоставление строк, в записи которого около 5,1 миллиона. Когда я говорю сложное сопоставление строк, я имею в виду использование библиотеки для выполнения нечеткой строки. (http://blog.bripkens.de/fuzzy.js/demo/)Каков наилучший способ выполнить сложный поиск строк по 5M-записям? Уровень приложения или уровень БД?
База данных, которую мы используем на работе, - это SAP Hana, которая отлично подходит для извлечения и запросов, поскольку она находится в памяти, поэтому я бы хотел избежать вытаскивания данных и повторного заполнения ее в памяти на прикладном уровне, но в то же время я не могу воспользоваться преимуществами библиотек (есть API для нечеткого соответствия в БД, но для нас это недостаточно полно).
Что такое средняя площадка? Если я предварительно обрабатываю и свяжу слова в БД с определенными ключевыми словами, которые пользователь может искать, я могу сократить накладные расходы, но есть ли какие-либо передовые методы, которые применяются, когда дело доходит до этого?
Если это имеет значение. Список представляет собой список дескрипторов фактурирования (которые отображаются на операторах CC), поэтому пользователь будет искать эти дескрипторы, чтобы выяснить, к каким компаниям принадлежит дескриптор.
Похоже, вы получаете правильную идею с предварительной обработкой. Я собирался предложить использовать возможности SAP для сужения результатов, прежде чем использовать в приложении более мощные библиотеки: среднюю почву. – SomeDude