尝试使用ElasticSearch存储和获取一些数据



我使用ElasticSearch进行了这个小配置,但由于我想存储一些数据,我得到了以下错误:使用repository.save(new FileProperty("12dW", 123.123, "hii"));p.S.,ElasticSearch正在使用docker 在端口9200上运行

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.elasticsearch.UncategorizedElasticsearchException: Elasticsearch exception [type=illegal_argument_exception, reason=request [/index/_refresh] contains unrecognized parameter: [ignore_throttled]]; nested exception is ElasticsearchStatusException[Elasticsearch exception [type=illegal_argument_exception, reason=request [/index/_refresh] contains unrecognized parameter: [ignore_throttled]]]] with root cause
org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=illegal_argument_exception, reason=request [/index/_refresh] contains unrecognized parameter: [ignore_throttled]]

FileRepository.java

@Repository
public interface FileRepository extends ElasticsearchRepository<FileProperty, String> {
List<FileProperty> findByName(String filename);
}

FileProperty.java

@Document(indexName = "index", type = "user", shards = 2)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FileProperty {
@Id
private String id;
private double filesize;
private String name;
}

Config.java

公共类配置{

@Bean
public RestHighLevelClient client() {
ClientConfiguration clientConfiguration
= ClientConfiguration.builder()
.connectedTo("localhost:9200")
.build();
return RestClients.create(clientConfiguration).rest();
}
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
return new ElasticsearchRestTemplate(client());
}

}

application.yml

# Local Elasticsearch config
spring.data.elasticsearch.repositories.enabled=true
spring.data.elasticsearch.cluster-nodes=localhost:9200
spring.data.elasticsearch.cluster-name=elasticsearch

elasticsearch.index.name=index
elasticsearch.user.type=user

您似乎正在使用版本6或7中的Elasticsearch客户端库来访问Elasticsearch 5集群。

请检查兼容性矩阵,哪些版本的Spring Data Elasticsearch和Spring Boot要与哪个版本的Elasticsearch一起使用。

另一件事:你应该使用

spring.elasticsearch.server=localhost:9200

要配置Elasticsearch集群的运行位置,请删除以下两行:

spring.data.elasticsearch.cluster-nodes=localhost:9200
spring.data.elasticsearch.cluster-name=elasticsearch

这些是传输客户端的配置值,如果设置了这些属性,Spring Boot将配置一个值。

最新更新