NoNodeAvailableException elasticsearch en un proyecto IntelliJ pero no en otro con la misma configuration y código programático y elasticsearch.yml

Sé que la pregunta relacionada con NoNodeAvailbleException ya se ha formulado varias veces en esta plataforma anteriormente. Había seguido todas las soluciones proporcionadas por expertos previamente; sin embargo, ninguno trabaja conmigo. El problema con la exception que recibo es único.

Me enfrento a NoNodeAvailableException en mi Java Client. La solución habitual es garantizar la coinheritance en las confiuraciones progtwigdas y la presente en elasticsearch.yml. Ya me había asegurado esto.

Solo por estar seguro, había creado otro proyecto IntelliJ con las mismas dependencies Maven con el mismo código de cliente elasticsearch y las mismas configuraciones, pero no obtuve NoNodeAvailableException en él.

Podría trabajar con este nuevo Intellij Project, enviando el código de mi proyecto IntelliJ anterior, pero perderé todas las confirmaciones que tenía previamente y otros services escritos en mi proyecto anterior.

Código de cliente anterior:

public class ElasticSearchTest { private static TransportClient client; public static void main(String[] args) { try { Settings elasticsearchSettings = Settings.builder().put("cluster.name", "elasticsearch_cse").put("node.name","elasticsearch_cse_data").build(); client = new PreBuiltTransportClient(elasticsearchSettings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); String sampleWebsite = "www.samplewebsite.com"; List<PageModel> pages = new ArrayList<PageModel>(); pages.add(new PageModel("www.samplewebsite.com/page1", "darkknight wins a lot", "First page")); pages.add(new PageModel("www.samplewebsite.com/page1/page2", "superman survives", "Second page")); pages.add(new PageModel("www.samplewebsite.com/page3", "wonderwoman releases", "third page")); DomainModel domainModel = new DomainModel(sampleWebsite, pages); insertIndicesFromDomain(domainModel); boolean isResultFound = false; List<PageModel> pageModels = getSearchResults(domainModel, "superman"); for(PageModel pageModel: pageModels){ if(pageModel.getPageContent().equals("superman survives")){ isResultFound = true; System.out.println(pageModel); } } // closeService(); } catch (UnknownHostException e) { e.printStackTrace(); } } public static void insertIndicesFromDomain(DomainModel domainModel){ int i = 1; for(PageModel pageModel: domainModel.getPages()){ client.prepareIndex("websiteindex", domainModel.getDomainName(), i + "").setSource(pageModel.getPageModelInMapFormat()).execute().actionGet(); i += 1; System.out.println(i); } } public static List<PageModel> getSearchResults(DomainModel domainModel, String searchKeyWords){ SearchResponse searchResponse = client.prepareSearch("websiteindex").setTypes(domainModel.getDomainName()).setSearchType(SearchType.QUERY_AND_FETCH) .setQuery(QueryBuilders.termQuery("content", searchKeyWords)).execute().actionGet(); SearchHit[] results = searchResponse.getHits().getHits(); List<PageModel> pageModels = new ArrayList<PageModel>(); for(SearchHit searchHit: results){ pageModels.add(new PageModel(searchHit.getSource())); } return pageModels; } public static void getIndices(){ ImmutableOpenMap<String, IndexMetaData> indicies = client.admin().cluster().prepareState().get().getState().getMetaData().getIndices(); for(ObjectObjectCursor<String, IndexMetaData> entry: indicies){ System.out.printf(entry.key + " " + entry.value); } } public static void closeService(){ client.close(); } } 

StackTrace del antiguo código de cliente:

 Exception in thread "main" NoNodeAvailableException[None of the configunetworking nodes are available: [{#transport#-1}{H90yHKj8R_aa0MeTciqjvA}{localhost}{127.0.0.1:9300}]] at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:347) at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:245) at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:59) at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:363) at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:408) at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80) at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:54) at net.media.sitesearch.models.ElasticSearchTest.insertIndicesFromDomain(ElasticSearchTest.java:66) at net.media.sitesearch.models.ElasticSearchTest.main(ElasticSearchTest.java:42) 

Nuevo código de cliente:

 public class Main { private static TransportClient client; public static void main(String[] args) { try { Settings elasticsearchSettings = Settings.builder().put("cluster.name", "elasticsearch_cse").put("node.name","elasticsearch_cse_data").build(); client = new PreBuiltTransportClient(elasticsearchSettings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); String sampleWebsite = "www.samplewebsite.com"; List<PageModel> pages = new ArrayList<PageModel>(); pages.add(new PageModel("www.samplewebsite.com/page1", "darkknight wins a lot", "First page")); pages.add(new PageModel("www.samplewebsite.com/page1/page2", "superman survives", "Second page")); pages.add(new PageModel("www.samplewebsite.com/page3", "wonderwoman releases", "third page")); DomainModel domainModel = new DomainModel(sampleWebsite, pages); insertIndicesFromDomain(domainModel); boolean isResultFound = false; List<PageModel> pageModels = getSearchResults(domainModel, "superman"); for(PageModel pageModel: pageModels){ if(pageModel.getPageContent().equals("superman survives")){ isResultFound = true; System.out.println(pageModel); } } // closeService(); } catch (UnknownHostException e) { e.printStackTrace(); } } public static void insertIndicesFromDomain(DomainModel domainModel){ int i = 1; for(PageModel pageModel: domainModel.getPages()){ client.prepareIndex("websiteindex", domainModel.getDomainName(), i + "").setSource(pageModel.getPageModelInMapFormat()).execute().actionGet(); i += 1; System.out.println(i); } } public static List<PageModel> getSearchResults(DomainModel domainModel, String searchKeyWords){ SearchResponse searchResponse = client.prepareSearch("websiteindex").setTypes(domainModel.getDomainName()).setSearchType(SearchType.QUERY_AND_FETCH) .setQuery(QueryBuilders.termQuery("content", searchKeyWords)).execute().actionGet(); SearchHit[] results = searchResponse.getHits().getHits(); List<PageModel> pageModels = new ArrayList<PageModel>(); for(SearchHit searchHit: results){ pageModels.add(new PageModel(searchHit.getSource())); } return pageModels; } public static void getIndices(){ ImmutableOpenMap<String, IndexMetaData> indicies = client.admin().cluster().prepareState().get().getState().getMetaData().getIndices(); for(ObjectObjectCursor<String, IndexMetaData> entry: indicies){ System.out.printf(entry.key + " " + entry.value); } } public static void closeService(){ client.close(); } } 

Salida del nuevo código de cliente:

 2 3 4 PageModel{pageUrl='www.samplewebsite.com/page1/page2', pageContent='superman survives', pageTitle='Second page', map={title=Second page, url=www.samplewebsite.com/page1/page2, content=superman survives}} 

La única diferencia entre mi código anterior y el código nuevo es que el código anterior está bajo el tree de trabajo de Git y el nuevo no.

Nueva edición:

Encontré otra diferencia importante entre mis dos proyectos. En mi nuevo Intellij Project, no he enviado todos los demás services desde el anterior y solo guardé el código necesario de ElasticSearch Client. Por lo tanto, el nuevo Intellij Project no contenía todas las dependencies del proyecto anterior, sino solo una dependencia de elasticsearch. En mi nuevo código de cliente que no contiene todas las dependencies maven a exception de la búsqueda elástica, no obtengo NoNodeAvailableException. ¿Podrían las dependencies entre búsqueda elástica y otras aplicaciones aptas ser una razón indirecta para esa exception?

Nuevo pom.xml

 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sampleelasticsearch</groupId> <artifactId>SampleES</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.5.1</version> </dependency> </dependencies> </project> 

Viejo pom.xml:

 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.media.siteresearch</groupId> <artifactId>SiteSearch</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.sparkjava</groupId> <artifactId>spark-core</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>net.media.crawler</groupId> <artifactId>MnetCrawler</artifactId> <version>0.995</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.5.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.24</version> </dependency> <dependency> <!-- jsoup HTML parser library @ https://jsoup.org/ --> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</version> </dependency> </dependencies> </project> 

Si los autores desean verificar los loggings del elástico server de búsqueda o de cualquier otro, pregunte (no los he agregado porque los detalles de la pregunta ya estaban llenos con muchos otros fragments relevantes desde mi punto de vista. Además, los detalles de la pregunta se saturaron )