Estoy codificando algunas pruebas para mi aplicación solr-indexer. Después de probar las mejores prácticas, deseo escribir código autodependiente, simplemente cargando el schema.xml
y solrconfig.xml
y creando un árbol de datos temporales para las pruebas de búsqueda de indexación. Como la aplicación está escrita en Java, estoy lidiando con la biblioteca SolrJ, pero estoy teniendo problemas (bueno, estoy perdido en el universo de corecontainers-coredescriptor-coreconfig-solrcore ...) Cualquiera puede ubicar aquí algún código para crear un Servidor Integrado que carga la configuración y también escribe en un dir de datos con parámetros pasados?Prueba de Solr a través del Servidor Integrado
Respuesta
Puede comenzar con el SolrExampleTests que se extiende SolrExampleTestBase que se extiende AbstractSolrTestCase.
También esto SampleTest.
SolrExampleTests: http://svn.apache.org/repos/asf/lucene/solr/tags/release- 1.4.0/src/test/org/apache/solr/client/solrj/SolrExampleTests.java – High6
Esto se refiere a las versiones 1.4 de solr. Si necesita las versiones 3.5 de esas clases, existe un artefacto solr-test-framework en maven central. http://mvnrepository.com/artifact/org.apache.solr/solr-test-framework – unscene
Este es un ejemplo para un caso de prueba simple. Solr es el directorio que contiene sus archivos de configuración Solr:
import java.io.IOException; import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; import org.apache.solr.util.AbstractSolrTestCase; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.SolrParams; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; public class SolrSearchConfigTest extends AbstractSolrTestCase { private SolrServer server; @Override public String getSchemaFile() { return "solr/conf/schema.xml"; } @Override public String getSolrConfigFile() { return "solr/conf/solrconfig.xml"; } @Before @Override public void setUp() throws Exception { super.setUp(); server = new EmbeddedSolrServer(h.getCoreContainer(), h.getCore().getName()); } @Test public void testThatNoResultsAreReturned() throws SolrServerException { SolrParams params = new SolrQuery("text that is not found"); QueryResponse response = server.query(params); assertEquals(0L, response.getResults().getNumFound()); } @Test public void testThatDocumentIsFound() throws SolrServerException, IOException { SolrInputDocument document = new SolrInputDocument(); document.addField("id", "1"); document.addField("name", "my name"); server.add(document); server.commit(); SolrParams params = new SolrQuery("name"); QueryResponse response = server.query(params); assertEquals(1L, response.getResults().getNumFound()); assertEquals("1", response.getResults().get(0).get("id")); } }
Ver esta entrada de blog para más información: Solr Integration Tests
Expondré todas las respuestas con una nueva respuesta, que es: si está utilizando el punto 4.7, puede usar esta metodología. Si usa un JUnit más alto, por ahora, no puede. – jayunit100
En primer lugar es necesario configurar el directorio básico Solr que contiene la carpeta que contiene solr.xml y conf solrconfig. xml, schema.xml etc.
Después de eso, puede utilizar este código simple y básico para Solrj.
File solrHome = new File("Your/Solr/Home/Dir/");
File configFile = new File(solrHome, "solr.xml");
CoreContainer coreContainer = new CoreContainer(solrHome.toString(), configFile);
SolrServer solrServer = new EmbeddedSolrServer(coreContainer, "Your-Core-Name-in-solr.xml");
SolrQuery query = new SolrQuery("Your Solr Query");
QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults();
Iterator<SolrDocument> i = docs.iterator();
while (i.hasNext()) {
System.out.println(i.next().toString());
}
Espero que esto ayude.
- 1. Neo4j Independiente vs servidor integrado?
- 2. Alojamiento del repositorio NuGet a través del servidor Apache/http
- 3. GDB con ECLIPSE GUI a través del servidor remoto?
- 4. Cómo conectarse a SQL Server a través del servidor proxy
- 5. Carga de archivos del servidor remoto a través de PHP
- 6. Servidor web incorporado con analizador XML integrado
- 7. Dirección del servidor público de prueba SFTP
- 8. Herramienta de rendimiento/prueba del servidor web
- 9. Servidor ldap integrado en la primavera en las pruebas unitarias
- 10. Copie la imagen del servidor remoto a través de HTTP
- 11. mysql sql importación a través de CLI del servidor remoto
- 12. Consulta de Solr a través de Solrj: Conceptos básicos
- 13. Solicitud incorrecta error al intentar añadir documentos a través del servidor SolrJ
- 14. Hosting Mercurial HG a través del servidor VisualSVN
- 15. Prueba de servidor SMTP se está ejecutando a través de C#
- 16. Llamar a un método del lado del servidor ASP.NET a través de jQuery
- 17. Ciclo de vida del servidor de automatización .NET llamado desde Excel a través de COM
- 18. Actualizar solr 1.4 index a solr 3.3?
- 19. almacenar variable constante en el servidor a través de .htaccess
- 20. SoapUI Mock integrado en la prueba de Maven
- 21. No se puede insertar la tabla del servidor decimal a sql a través del código C#
- 22. Actualización del índice de Solr por consulta
- 23. Prueba del proyecto Delphi a través de TestComplete 7 en FinalBuilder
- 24. Conexión a la cuenta de almacenamiento de Azure a través del servidor proxy
- 25. Reutilización del código del servidor SQL a través de procedimientos almacenados: ¿buena o mala práctica?
- 26. Archivo de copia segura del servidor remoto a través del módulo scp y os en Python
- 27. OAuth prueba servidor/aplicación
- 28. ¿Conectar a mongodb a través del navegador?
- 29. Servidor de prueba con JUnit
- 30. Inspección visual automatizada a través del navegador
CUIDADO !!!! Solo JUnit 4.7 apoya los enfoques que se detallan a continuación, creo. Existe algún tipo de error de invocación dinámica de instalación() que se produce en las versiones más recientes de JUnit con la prueba Solr Base. – jayunit100
Pude responder una pregunta similar aquí: http://stackoverflow.com/a/23102896/1410035 –