gpt4 book ai didi

java - 为什么在 Spring Boot 中无法加载 Elasticsearch 节点会出现此错误?

转载 作者:行者123 更新时间:2023-12-02 10:33:18 25 4
gpt4 key购买 nike

我正在尝试在我的网络应用程序中使用elasticsearch。我正在使用spring boot 2.0.6。我没有添加任何配置文件elasticsearch是由spring boot自动配置的。我在 application.properties 中添加了 spring data Elasticsearch 属性,如下所示

spring-data-elasticsearch-3.0.11

elasticsearch-5.6.12

spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.properties.node.master: true
spring.data.elasticsearch.properties.node.data: false
spring.data.elasticsearch.properties.node.name: my-node
spring.data.elasticsearch.properties.node.attr.type: hot
spring.data.elasticsearch.properties.http.enabled: true
spring.data.elasticsearch.repositories.enabled=true

当我运行应用程序控制台时显示

 o.elasticsearch.plugins.PluginsService   : no modules loaded
o.elasticsearch.plugins.PluginsService : loaded plugin [org.elasticsearch.index.reindex.ReindexPlugin]
o.elasticsearch.plugins.PluginsService : loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
o.elasticsearch.plugins.PluginsService : loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
o.elasticsearch.plugins.PluginsService : loaded plugin [org.elasticsearch.script.mustache.MustachePlugin]
o.elasticsearch.plugins.PluginsService : loaded plugin [org.elasticsearch.transport.Netty4Plugin]
o.s.d.e.c.TransportClientFactoryBean : Adding transport node : 127.0.0.1:9300

我添加了一个简单的示例用于演示目的,但我收到此错误

.d.e.r.s.AbstractElasticsearchRepository:无法加载elasticsearch节点:org.elasticsearch.client.transport.NoNodeAvailableException:配置的节点均不可用:[{#transport#-1}{zYXxPcpaQ_6I9GI2yID8cQ}{localhost}{127.0 .0.1:9300}]

Exception encountered during context initialization - cancelling refresh attempt: 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loaders':
Invocation of init method failed; nested exception is NoNodeAvailableException
[None of the configured nodes are available: [{#transport#-1}{zYXxPcpaQ_6I9GI2yID8cQ}{localhost}{127.0.0.1:9300}]]

这是我使用的示例

Users.java

@Document(indexName = "users", type = "users", shards = 1, replicas = 0, refreshInterval = "-1")
public class Users {

private String name;
private Long id;
private String teamName;
private Long salary;

Loaders.java

@Component
public class Loaders {

@Autowired
ElasticsearchOperations operations;

@Autowired
UsersRepository usersRepository;

@PostConstruct
@Transactional
public void loadAll(){

operations.putMapping(Users.class);
System.out.println("Loading Data");
usersRepository.saveAll(getData());
System.out.printf("Loading Completed");

}

private List<Users> getData() {
List<Users> userses = new ArrayList<>();
userses.add(new Users("Ajay",123L, "Accounting", 12000L));
userses.add(new Users("Jaga",1234L, "Finance", 22000L));
userses.add(new Users("Thiru",1235L, "Accounting", 12000L));
return userses;
}
}

UsersRepository.java

public interface UsersRepository extends ElasticsearchRepository<Users, Long> {
List<Users> findByName(String text);

List<Users> findBySalary(Long salary);
}

为什么我收到错误?我还应该使用其他属性吗?

最佳答案

从这里下载elasticsearch 5.6.12后我的问题解决了 https://www.elastic.co/downloads/elasticsearch#ga-release

并添加配置文件

@Bean
public Client client() throws UnknownHostException {
Settings settings = Settings.builder()
.put("client.transport.sniff", true)
.put("cluster.name", "elasticsearch").build();
@SuppressWarnings("resource")
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
return client;
}

@Bean
public ElasticsearchOperations elasticsearchTemplate() throws UnknownHostException {
return new ElasticsearchTemplate(client());
}

关于java - 为什么在 Spring Boot 中无法加载 Elasticsearch 节点会出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com