2011-10-28 15 views
10
  1. Estoy tratando de crear un motor de búsqueda solo para aprender y obtener más experiencia en Java.Motor de búsqueda en Java?

    Mi intención es almacenar aproximadamente 100 archivos en un servidor, una mezcla de html, xml, doc, txt, y para que cada archivo tenga metadatos.

    SO cuando busco una palabra clave, debe mostrar un archivo con su meta descripción como Google.

    Mi pregunta es, aparte de html, puede agregar metadatos a cualquier otro formato de archivo, para que se muestre la meta descripción.

  2. ¿Podría dirigirme hacia un motor de búsqueda Java, que puede buscar en formatos de archivo (txt, html) y mostrar el resultado.

    Estoy trabajando en mi propio código para esto, pero me gustaría echarle un vistazo al código de otras personas para obtener ayuda?

Respuesta

26

Lucene es el motor de búsqueda canónico de Java.

Para agregar documentos de una variedad de fuentes, consulte Apache Tika y para obtener un sistema completo con las interfaces de servicio/web, solr.

Lucene permite asociar metadatos arbitrarios con sus documentos. Tika eliminará automáticamente los metadatos de una variedad de formatos.

4

1) Mi pregunta es aparte de html puede agregar metadatos a cualquier otro formato de archivo, para que se muestre la meta descripción.

En general, debe utilizar una base de datos y almacenar los metadatos junto con el documento allí. Luego haría una búsqueda por palabra clave usando una consulta de base de datos (posiblemente usando SQL like o ilike).

Los archivos pueden almacenarse en el disco duro con solo rutas en el DB o colocarse en la base de datos como CLOB o BLOB, dependiendo de si tiene texto o documentos binarios.

2) ¿Sería capaz de apuntar hacia un motor de búsqueda Java, que puede buscar en formatos de archivo (txt, html) y muestra el resultado.

Probar Apache Lucene.

3

Lo bueno es Lucene. Hay gran cantidad de plugins (que permitiría, por ejemplo, se lee desde .doc), soportar múltiples idiomas y gran cantidad de algoritmos (como la distancia Levenshtein)

3

Mira apache nutch

Apache Nutch is an open source web-search software project. 

Nutch se acumula en la parte superior de Lucene/solr para indexación, tika para analizar documentos y agrega su propio rastreador web.

3
  • Google ignora por completo las descripciones meta hoy en día, debido a que ha sido abusado o bien, o no lleno de valores significativos
  • Lucene y/o Solr podría hacer lo que quiere, echar un vistazo.
  • 100 archivos es una cantidad muy pequeña, no tendrá ningún problema para administrar esta cantidad de datos de la manera que desee, si es para hacer ejercicio.
3

... lucene y solr vienen a la mente como el código de lejos a otras personas se refiere.

2

Apache Tika para extraer metadata.

Apache Tika Tika El Apache es un conjunto de herramientas ASFv2 licencia de código abierto herramienta para extraer información de los documentos digitales. Tika permite motores de búsqueda, sistemas de gestión de contenido y otras aplicaciones que trabajan con diversos tipos de documentos digitales para detectar fácilmente y extraer metadatos y contenido de todos los formatos de archivo principales.

3

Tendrá que utilizar varias bibliotecas. En primer lugar, como mucha gente mencionó antes, puede usar Lucene para realizar la búsqueda real. Sin embargo, Lucene solo maneja texto sin formato, por lo que debe extraerlo de los archivos que indexa. Para esto, puede usar Apache Tika.

Para empezar, probablemente debería comprar el libro Lucene in Action 2nd edition. La mayoría de los ejemplos allí todavía están actualizados. Si quieres ser tacaño, también puedes mirar el código fuente provisto en esa página.

Cuestiones relacionadas