当前位置: 首页 > 知识库问答 >
问题:

elasticsearch ElasticsearchIntegrationTest弹性搜索集成测试

邵旺
2023-03-14

我通过扩展ElasticsearchIntegrationTest为ElasticSearch编写了一个集成测试。测试顶部如下:

import org.junit.*;
import static org.junit.Assert.assertEquals;

import org.elasticsearch.test.ElasticsearchIntegrationTest;

public class ProductSearchTest extends ElasticsearchIntegrationTest

在尝试通过maven运行测试时,我从JUnit中看到了这个错误

JAVAlang.NoSuchMethodError:com。胡萝卜搜索。随机测试。随机化上下文。运行Privaterandomness(Lcom/carrotsearch/randomizedtesting/Randomness;Ljava/util/concurrent/Callable;)Ljava/lang/Object;在\uu随机测试时。种子信息。种子([9DE685AB75B54F0A:10B1B129F9E3CB67]:0)

我已经在pom中包含了elasticsearch站点上描述的依赖项

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-test-framework</artifactId>
    <version>4.10.2</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>1.4.0</version>
    <scope>test</scope>
    <type>test-jar</type>
</dependency>
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>1.4.0</version>
    <scope>test</scope>
</dependency>

以前有人见过这个吗?看起来我缺少一个依赖项(我尝试过将几个carrotsearch maven依赖项添加到pom中但没有成功)。或者,是否有人拥有与我使用的版本一起使用的集成测试,因此至少如果我花费数小时试图找到依赖项问题,我可以确信它一旦被识别就会工作。

感谢您抽出时间。

共有1个答案

凌翔宇
2023-03-14

实际上,jar Lucene使用的随机测试与ES使用的测试之间似乎存在不匹配。在你的pom中试试这个。xml:

    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-test-framework</artifactId>
        <version>4.10.2</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <artifactId>randomizedtesting-runner</artifactId>
                <groupId>
                    com.carrotsearch.randomizedtesting
                </groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>1.4.0</version>
        <scope>test</scope>
        <type>test-jar</type>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>1.4.0</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.carrotsearch.randomizedtesting</groupId>
        <artifactId>randomizedtesting-runner</artifactId>
        <version>2.1.10</version>
        <scope>test</scope>
    </dependency>
 类似资料:
  • 我试着遵循这里列出的Nutch+ES指南 https://gist.github.com/xrstf/b48a970098a8e76943b9 https://qbox.io/blog/scring-the-web-wit-nutch-for-elasticsearch 然而,我无法让他们的组合工作。基本上,我在Nutch上执行了以下命令: 现在,我想将获取的数据索引到ES中,我按照指南进行了操作

  • 我正在用弹性搜索和PostgreSQL构建一个SpringBoot应用程序。我使用PostgreSQL进行写作,使用弹性搜索进行阅读。但我坚持了一些观点 我们是否需要为弹性搜索和PostgreSQL编写单独的模型(POJO)类?因为我们正在使用Elasticsearch chRepostory进行弹性搜索和JpaRepostory。 弹性搜索的注释也不同,PostgreSQL的注释在模型类上也不同

  • 我有一个关于书籍的数据集,每本书都可以是一种或多种语言的。每个用户都注册为拥有一种或多种语言。 当用户搜索书籍时,我只想返回那些他们理解所有语言的书籍。 例如,系统中有以下两本书: 如果John被注册为懂英语、德语、法语和意大利语,那么他的查询结果永远不应该包括Book B。 我的系统目前是使用Apache Solr编写的,最后我编写了一个插件来执行子集操作(如果记录的语言是用户语言的子集,则该记

  • 我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。

  • 当我执行ps-aef grep elasticsearch HeapDumpOnOutOfMemoryError时看到了这一点 501 373 47 1 0 2:29pm ttys004 0:04.14/usr/bin/Java-xms4g-xmx4g-xss256k-djava.awt.headless=true-xx:+useparnewgc-xx:+useparnewgc-xx:+usepa