Есть некое множество слов, пусть это будет 100 000 слов.
Есть некое количество текстов, пусть будет 150 000 текстов, пусть среднее количество слов в каждом тексте будет 50.
Есть программа которая ищет в цикле каждое слово из первого множества, сейчас это все в массивах и просто сравнивается между собой, на что уходит очень много времени.
Есть ли такие системы которые могут выполнить такие проверки с большим количеством параллельных потоков или еще как то?
Какие идеи пока что посетили меня.
Положить первое множество в таблицу MySQL, и навесить ключ на поле с этим множеством.
Далее положить во временную таблицу InMemory все слова из текстов и потом соеденить их через INNER JOIN. Но у нас в каждом тексте может быть несколько совпадений с первым множеством и как при этом отделить одно от другого мне не совсем понятно.
Может можно как то использовать Elasticsearch, Redis и тому подобные системы?