У меня есть собственный алгоритм (написанный на Java) для поиска в списке строк (A) строки, которая является самой длинной подстрокой другой строки (B) (самая длинная общая подстрока alg, но она не подходит в этом случае, потому чтосписок строк большой (100k +).
EX:
B -> "sadsaf dsfsc adsa 4 sad3 dfa fgs adsafd"
A -> ["fdsdf dsa", "adsa", "4 sad3", "cdsdfds dsa", "cx d45"]
And the result is "4 sad3" since its a subtring of B and also is
longer than "adsa" which is also a substring of B
Я пытаюсь найти альтернативу алгоритму поиска, использующему system / service / database для того, чтобы вывести этот алгоритм из внешнего вида.
То, что я пробовал до сих пор, это:
- mysql, но он довольно медленный и требует как минимум ssd и мощный процессор
- asticsearch с использованием запроса percolateкоторый я еще не тестировал, но кажется многообещающим
- redis, но я не нашел способа реплицировать alg, используя их синтаксис
Так что любое предложение относительно системы/ service / database , которая может сделать это относительно прилично с точки зрения производительности, приветствуется, так как чем больше у меня будет вариантов, тем лучше (быстрее) будет решение.