Búsqueda eficiente de subcadenas en un archivo de texto grande que contiene 100 millones de cadenas (sin cadena duplicada)

Tengo un archivo de texto grande (1.5 Gb) con 100 millones de cadenas (sin cadena duplicada) y todas las cadenas están dispuestas línea por línea en el archivo. Quiero hacer una aplicación en java para que cuando el usuario asigne una palabra clave (subcadena) obtenga el recuento de todas las cadenas presentes en el archivo que contiene esa palabra clave. Ya conozco una técnica de LUCENE. ¿Hay alguna otra manera de hacer esto? Quiero el resultado dentro de 3-4 segundos. MI SISTEMA TIENE 4GB DE RAM Y DOBLE CORE configuración ... necesito hacer esto en "SOLO JAVA"

Respuestas a la pregunta(4)

Su respuesta a la pregunta