¿Existe una herramienta con las siguientes características?
Tenemos grep
para la búsqueda de línea de comandos de archivos txt. Es rápido siempre que el archivo tenga como máximo unos pocos megabytes.
Tenemos mlocate
, que usa un índice. A diferencia de grep, mantiene una base de datos (es decir, un índice), en lugar de buscar el contenido directamente, lo que mejora el rendimiento.
Sin embargo, está destinado solo a rutas de archivos, que también son rutas que realmente son válidas en su sistema de archivos en lugar de solo corpus (¿corpi?) De texto de forma libre.
Para la búsqueda de volúmenes gigantes sin restricciones sobre qué elementos (es decir, documentos) almacenamos, tenemos Apache Solr. Pero esos están destinados principalmente a clientes web, no a la línea de comandos (aunque sé que puede curl
acceder a su servidor y analizar la respuesta XML, ¡puaj!).
Entonces mi pregunta es: ¿existe (el concepto de) una herramienta que hace lo siguiente?
grep
)mlocate
)Sé que podría escribir el mío propio, pero a) no voy a vivir tanto tiempo b) seguramente alguien en el dominio del software habrá tenido este requisito en su vida antes.
No estoy seguro de qué significan los volúmenes gigantes para usted, pero http://sary.sourceforge.net/ podría ser un lugar para comenzar.
En uno de nuestros sistemas, ejecutamos vislumbrar el índice todas las noches. Produce un índice y tiene algunas opciones para establecer el tamaño del índice. El comando de búsqueda complementario, vislumbrar, tiene numerosas opciones para controlar la búsqueda y la salida.
Recoll parece hacer lo que estoy buscando: http://www.lesbonscomptes.com/recoll/
sudo apt-get install recoll
cat videos.txt | recollindex -if
Página de manual:
recollindex -i will index individual files into the database. The stem expansion and aspell databases will not be updated. The skippedPaths and skippedNames configuration variables will be used, so that some files may be
skipped. You can tell recollindex to ignore skippedPaths and skippedNames by setting the -f option. This allows fully custom file selection for a given subtree, for which you would add the top directory to skippedPaths,
and use any custom tool to generate the file list (ie: a tool from a source code control system).
recoll -t world cup
video/webm [file:///Large/Videos/documentary/Documentaries2/documentaries/The 1966 World Cup Documentary.webm] [The 1966 World Cup Documentary.webm] 43323557 bytes
video/x-ms-asf [file:///Large/Videos/soccer/1986 World Cup Mexico /film/World Cup Mexico 1986 Highlights.wmv] [World Cup Mexico 1986 Highlights.wmv] 75115064 bytes
video/mp4 [file:///Large/Videos/soccer/1990 World Cup Italia/Italia 90 World Cup 1990.mp4] [Italia 90 World Cup 1990.mp4] 44752690 bytes
video/webm [file:///Large/Videos/soccer/1994 World Cup USA/1994 FIFA World Cup Highlights.webm] [1994 FIFA World Cup Highlights.webm] 99297071 bytes
video/webm [file:///Large/Videos/soccer/1994 World Cup USA/WHITNEY HOUSTON IN WORLD CUP 1994.webm] [WHITNEY HOUSTON IN WORLD CUP 1994.webm] 209027435 bytes
0 ~/.recoll/xapiandb/flintlock
4.0K ~/.recoll/xapiandb/iamchert
4.0K ~/.recoll/xapiandb/position.baseA
4.0K ~/.recoll/xapiandb/position.baseB
4.0K ~/.recoll/xapiandb/postlist.baseA
4.0K ~/.recoll/xapiandb/postlist.baseB
4.0K ~/.recoll/xapiandb/record.baseA
4.0K ~/.recoll/xapiandb/record.baseB
4.0K ~/.recoll/xapiandb/termlist.baseA
4.0K ~/.recoll/xapiandb/termlist.baseB
2.5M ~/.recoll/xapiandb/record.DB
7.6M ~/.recoll/xapiandb/termlist.DB
13M ~/.recoll/xapiandb/postlist.DB
14M ~/.recoll/xapiandb/position.DB
36M ~/.recoll/xapiandb
recoll
másmlocate
sopa de manzana