尝试使用 ElasticSearch 存储和获取一些数据
Trying to store and get some data using ElasticSearch
我有这个使用 ElasticSearch 的小配置,但由于我想存储一些数据,我收到以下错误:with 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
public class 配置 {
@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 集群。
请检查 compatibility matrix 哪个版本的 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如果设置了这些属性,启动将配置一个。
我有这个使用 ElasticSearch 的小配置,但由于我想存储一些数据,我收到以下错误:with repository.save(new FileProperty("12dW", 123.123, "hii"));
P.S。 elasticSearch 使用 docker
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
public class 配置 {
@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 集群。
请检查 compatibility matrix 哪个版本的 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如果设置了这些属性,启动将配置一个。