Необходимо сделать приложение: В систему загружаются текстовые файлы, пользователь вводит поисковый запрос – в систему ставится задача на исполнение: осуществляется поиск по всем загруженным файлам, выбирается каждая строчка из каждого документа, в котором встречается искомая фраза и формируется итоговый документ, в котором: все найденные строки с указанием документа, в котором они найдены.
Я не знаю, как загрузить файлы в файловую систему и выполнить по ним поиск. Я очень плохо представляю, как все это завернуть в сервлет и уж тем более почти не представляю, как использовать многопоточность.
Артём Петренков, дело в том, что мне нужно сделать поиск только средствами java 8. Maven, Tomcat, все.
Получить файлы, сохранить их в папку и искать по ним построчно
Так себе решение тем более что ElasticSearch или Sphinx умеют и файлы индексировать.
GrossmasteR настройте Full text search для вашей базы данных, если файлы хранятся в файловой системе (что правильно), настройте обход по fs, Если все основано на портальной системе добавьте индекс, что бы не пропускать документы при обходе.
В общем уточните что за движок у вашего сайта, во многих решениях уже есть модули поиска. Например у Oracle E Business
Владимир Коротенко, это учебная задача/ тестовое задание. Здесь нет никакого движка. Надо написать сервлет и в нем реализовать загрузку файлов, построчный поиск по ним и выдачу результата в итоговый файл. Да вот только я не знаю, какие классы/методы использовать для работы с файлами. Получается сейчас есть новый Files? Я не знаю, как конкретно это сделать. Как их загружать со странички в upload, как потом сделать по всем поиск построчно, как сформировать итоговый файл? Надо бы сделать без Spring. Совсем простенький сервлет я написать смогу. Практиковаться еще не приходилось
Владимир Коротенко, я согласен. В тоже время боюсь сейчас на это уже нет времени. Мне в субботу кровь из носу надо сдавать. Мне нужен какой-то курс "веб-сервис за 24 часа" или "работа с файлами в java 8 для чайников", какой-то туториал, конкертный код, как это сделать
Артём Петренков, не совсем так. Это были 70-ти часовые курсы. До JDBC все было просто и понятно. У меня все домашки по курсу сделаны. А как начались сервлеты, многопоточность, все стало сложно и непонятно. Слишком много информации, очень мало практики, в голове каша. Это итоговый проект, плюс тестовое задание на собеседование. И оно, по-моему, неожиданно сложнее того, что делали\показывал препод в рамках курса.
Создать простое веб-приложение, задеплоить на томкат — смогу.
Сейчас разбираюсь с сервлетами.
Все еще не знаю, как получить от клиента файлы, сохранить в файловой системе и выполнить по ним поиск.