下面是我试图作为POC开始的部分,它抛出异常:
public class EmbeddedElasticConfiguration {
public static final String VERSION = "6.8.4";
public static final String DOWNLOAD_DIRECTORY = "<path>\\test-elasticsearch";
public static final String INSTALLATION_DIRECTORY = "<path>\test-elasticsearch";
public static final String NAME = "elasticsearch";
public static final String TRANSPORT_PORT = "9300";
public static final String HTTP_CLIENT_PORT = "9200";
public static final String TEST_INDEX = "salesorder";
public static final String TEST_TYPE = "salesorder";
public static final String RESOURCE_LOCATION = "src/test/resources/salesorder-mapping.json";
private ObjectMapper objectMapper = new ObjectMapper();
EmbeddedElastic embeddedElastic;
@Test
public void configure() throws IOException, InterruptedException {
embeddedElastic = EmbeddedElastic.builder()
.withElasticVersion(VERSION)
.withSetting(TRANSPORT_TCP_PORT, 9300)
.withSetting(CLUSTER_NAME, "my-cluster")
//.withPlugin("analysis-stempel")
.withDownloadDirectory(new File(DOWNLOAD_DIRECTORY))
.withInstallationDirectory(new File(INSTALLATION_DIRECTORY))
.withSetting(HTTP_PORT, 9200)
.withIndex(TEST_INDEX, IndexSettings.builder()
.withType(TEST_TYPE, readMappingFromJson())
.build())
.build();
embeddedElastic.start();
}
private String readMappingFromJson() throws IOException {
final File file = ResourceUtils.getFile(RESOURCE_LOCATION);
String mapping = new String(Files.readAllBytes(file.toPath()));
System.out.println("mapping: "+ mapping);
return mapping;
}
@After
public void stopServer() {
embeddedElastic.stop();
}
}
我在以下得到以下例外:
pl.allegro.tech.embeddedelasticsearch.EmbeddedElasticsearchStartupException: Failed to start elasticsearch within time-out
at pl.allegro.tech.embeddedelasticsearch.ElasticServer.waitForElasticToStart(ElasticServer.java:127)
at pl.allegro.tech.embeddedelasticsearch.ElasticServer.start(ElasticServer.java:50)
at pl.allegro.tech.embeddedelasticsearch.EmbeddedElastic.startElastic(EmbeddedElastic.java:82)
at pl.allegro.tech.embeddedelasticsearch.EmbeddedElastic.start(EmbeddedElastic.java:63)
at com.xxx.elasticsearch.adapter.configuration.EmbeddedElasticConfiguration.configure(EmbeddedElasticConfiguration.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
是否有人可以帮助使用spring-data在elasticsearch中进行集成测试的任何其他选项,或者我应该如何为elasticsearch编写集成测试。
我知道在stackoverflow和embedded-elasticsearch的其他门户上还有其他的答案,但这些都不适合我当前的elasticsearch版本。
您没有编写您使用的JUnit版本。我可以告诉您我们如何在Spring Data Elasticsearch本身中处理这个问题:
对于JUnit4,您可以检查使用Utils类设置本地运行的Elasticsearch节点的JUnit4规则,并在结束时将其删除。
对于JUnit5,您可能会了解当前主分支是如何处理这一点的,相关的类可以在这里找到。
我使用的是ElasticSearch7.1.0,我想创建一个spring-boot应用程序,并使用Spring-Data-Elastic-Search与Elasticsearch连接。但我还没有找到使用查询和聚合的解决方案。
问题内容: 有没有办法在运行集成测试之前在gradle构建中启动elasticsearch,然后再停止elasticsearch? 到目前为止,我的方法如下,但这阻碍了gradle构建的进一步执行。 问题答案: 出于我的目的,我决定在Java代码的集成测试中开始elasticsearch。 我已经尝试过ElasticsearchIntegrationTest,但是不适用于spring,因为它与Sp
Spring Data Elasticsearch 项目提供了对 elasticsearch 搜索引擎的集成。
问题内容: 有谁知道如何整合spring mvc和elastisearch?我想实现一个类似于一般网站的网页(谷歌,雅虎searcg引擎),是否有任何教程或示例代码? 问题答案: 检出Spring Data Elasticsearch 项目。 这是一个示例应用程序。
我试图使用Spring Data连接Elasticsearch 6.1(我使用Spring Boot) 但是提到最新版本只支持5.2。,有没有支持ES 6.1的替代方案? https://github.com/spring-projects/spring-data-elasticsearch/blob/master/README.md
我使用spring-data-elasticsearch框架从elasticsearch服务器获取查询结果,java代码如下: 我在服务器中获取原始查询日志,如下所示: 根据查询日志,spring data elasticsearch将为查询添加大小限制