SanalSundar Ответов: 1

Алгоритм поиска по нескольким входным переменным в записях, содержащих диапазоны значений различных типов данных


У меня есть много сущностей, которые содержат тысячи записей, с различными значениями, например, некоторые имеют диапазоны между числами,некоторые с переменной IN, имеющей несколько значений в ней, некоторые с переменной LIKE, содержащей несколько значений различных типов данных, таких как integer, string и decimal. Например-типичная запись выглядит так -

А = новый | код = в 101,102,103 | значения = как А*,ь*,с* | Качество = между 1,9 |
Тест = В А


Если я получаю входные данные для полей-A, Code, Values & Quality per выше, мне нужно вернуть соответствующее тестовое поле для всех соответствующих записей. Входные данные могут быть указаны ниже:

A = Новый, Код = 102, Значения = Альфа, Качество = 8.2

Учитывая вышесказанное, я подумывал об использовании алгоритмов сопоставления шаблонов для идентификации совпадающих записей. Пожалуйста, предложите, какой алгоритм подойдет для правильной идентификации данной записи(записей) на основе предоставленного набора значений.

Что я уже пробовал:

Given the above I was thinking about using pattern matching algorithms to be used to identify the matching records. Also to hash the inputs to be used as a lookup when the inputs are to be searched for.

1 Ответов

Рейтинг:
2

Patrice T

Цитата:
Пожалуйста, предложите, какой алгоритм подойдет для правильной идентификации данной записи(записей) на основе предоставленного набора значений.

Вы находитесь в наихудшей возможной ситуации, плоские текстовые данные подразумевают применение грубой силы. Название полей в каждой записи делает его еще хуже формата CSV.
Единственная оптимизация, которую вы можете ожидать, - это сначала проверить поле, которое лучше всего отфильтрует записи. Но это не сильно изменит время обработки данных.
Так:
1) читать все строки, никакой оптимизации
2) для каждой строки, разделенной на запятую, никакой оптимизации
3) для каждого поля, разбитого на равные, возможна скромная оптимизация в зависимости от фильтра.