La página wiki, http://wiki.apache.org/solr/DataImportHandler explica cómo indexar los datos utilizando DataImportHandler. Pero el ejemplo usa un comando para iniciar la operación de importación. ¿Cómo puedo programar un trabajo para hacer esto regularmente? CCómo puedo programar las importaciones de datos en Solr
Respuesta
¡En UNIX/Linux, cron jobs son tus amigos! En Windows, hay Task Scheduler.
ACTUALIZACIÓN
Para hacerlo desde el código Java, ya que esta es una petición GET sencilla, se puede usar la biblioteca HTTP Client. Ver this tutorial sobre el uso de GetMethod.
Si necesita enviar otras solicitudes mediante programación a Solr, probablemente debería utilizar Solrj library. Permite enviar todos los comandos básicos a Solr hormiga en que puede configurarse para acceder a cualquier controlador de Solr:
CommonsHttpSolrServer server = new CommonsHttpSolrServer("http://localhost:8983/solr");
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("command", "full-import");
QueryRequest request = new QueryRequest(params);
request.setPath("/dataimport");
server.request(request);
que era capaz de hacer que funcione siguiendo los pasos:
Crear clases ApplicationListener, HTTPPostScheduler y SolrDataImportProperties (código fuente listado en http://wiki.apache.org/solr/DataImportHandler#Scheduling). Creo que estas clases aún no se han comprometido.
Añadir la siguiente oyente archivo web.xml Solr:
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
Configurar dataimport.properties según las instrucciones en la página wiki.
Hay un nuevo parche de Esteve Fernández que hace que el conjunto funcione en Unix/Linux: https://issues.apache.org/jira/browse/SOLR-2305
@Eldo Si usted va a necesitar más ayuda en la construcción de su propio JAR apenas caer una pregunta aquí ...
sencillo añadir esta línea a su crontab con crontab -e
comando:
0,30 * * * * /usr/bin/wget http://<solr_host>:8983/solr/<core_name>/dataimport?command=full-import
esto importará completa cada 30 minutos. Reemplace <solr_host>
y <core_name>
con su configuración
Esto es un poco antiguo, pero creé una aplicación Windows WPF y un servicio para manejar esto, como usar trabajos CRON y el Programador de tareas es un poco difícil de mantener si tiene muchos núcleos/entornos.
https://github.com/systemidx/SolrScheduler
Es, básicamente, acaba de caer en un archivo JSON en una carpeta especificada y se va a utilizar un cliente REST para emitir los comandos a Solr.
Podemos usar Quartz para hacer eso, que es como el crontab en linux. Pero básicamente, el TimerTask incrustado en jdk es suficiente para ti.
- 1. ¿Cómo puedo rastrear las importaciones de Python?
- 2. Solr: ¿cómo puedo recibir notificaciones de importaciones fallidas desde mi DataImportHandler?
- 3. ¿Cómo mantener las importaciones ordenadas en Django?
- 4. ¿Cómo puedo ver todos los datos que solr indexa?
- 5. multinivel relativa de las importaciones
- 6. ¿Cómo puedo programar una GUI en MATLAB?
- 7. cómo detectar las importaciones no utilizadas?
- 8. circular dependencia de las importaciones en Python
- 9. Python: optimización de las importaciones
- 10. ¿Puedo programar en iPad 2?
- 11. Cualquier diferencia entre las importaciones de clase y las importaciones de paquetes en Java?
- 12. Cómo deshabilitar las importaciones de estrellas en Eclipse Juno
- 13. Cómo tratar los datos relacionales en Solr
- 14. SQLAlchemy IntegrityError e importaciones de datos masivos
- 15. ¿Cuándo carga loadloader las importaciones?
- 16. Intentando evitar las importaciones circulares
- 17. Evitar importaciones repetidas en Java: ¿Heredar importaciones?
- 18. ¿Cómo programar hex2bin en Javascript?
- 19. ¿Cómo puedo programar a la defensiva en Ruby?
- 20. Cómo puedo programar un hilo en particular en Blackberry
- 21. ¿Cómo puedo actualizar automáticamente las importaciones de la función Entity Framework
- 22. Cómo puedo copiar 2 campos de datos a un campo en Solr
- 23. ¿Cómo puedo programar un trabajo 'semanal' en Heroku?
- 24. Cómo programar actualizaciones de índice en CouchDB
- 25. Cómo reindex todos los documentos en los datos Solr
- 26. Comprender las importaciones de paquetes en el archivo .cbproj
- 27. ¿Cómo programar una consulta MySQL?
- 28. Eclipse Optimizar importaciones para incluir importaciones estáticas
- 29. importaciones estáticas en C#
- 30. Cómo implementar Solr en Sitecore
Gracias Pascal. Mi pregunta fue diferente Necesito activar el comando http: //: /solr/dataimport? Command = full-import para la operación de indexación. ¿Cómo puedo hacer eso usando una clase java? (¿en contra de escribir el comando en una ventana del navegador?) –
Eldo
ver mis actualizaciones en la respuesta –
Además, si lo está haciendo desde cron, una wget http://127.0.0.1:8983/solr/dataimport?command=full-import funciona muy bien! –