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

Delete\u by\u查询冲突继续在使用netty4的ElasticSearch 5.1.1中不起作用

邢硕
2023-03-14

我在5.1.1版中编写了自己的内存ElasticSearch服务器。它可以正确地添加文档,但无法删除。

Maven依赖项:

    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>5.1.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch.plugin</groupId>
        <artifactId>transport-netty4-client</artifactId>
        <version>5.1.1</version>
        <scope>test</scope>
    </dependency>

节点设置映射:

    settingsMap.put("node.name", nodeName);
    settingsMap.put("path.conf", "target");
    settingsMap.put("path.data", "target");
    settingsMap.put("path.logs", "target");
    settingsMap.put("path.home", "target");
    settingsMap.put("http.type", "netty4");
    settingsMap.put("http.port", httpPort);
    settingsMap.put("transport.tcp.port", httpTransportPort);
    settingsMap.put("transport.type", "netty4");
    settingsMap.put("action.auto_create_index", "false");

一次删除多个文档的方法:

public boolean deleteType() throws IOException, CustomResponseException {
    String query = "{\n" + "  \"query\": {\n" + "    \"match_all\": {}\n" + "  }\n" + "}";
    HttpEntity entity = new NStringEntity(query, ContentType.APPLICATION_JSON);
    Response indexResponse = restClient.performRequest("POST",
            "/" + this.getIndex() + "/" + this.getType() + "/_delete_by_query?conflicts=proceed",
            Collections.<String, String>emptyMap(), entity);
    return processStatusCode(indexResponse.getStatusLine()) == 200;
}

运行测试时,我得到错误:

org.elasticsearch.client.响应异常: POSThttp://localhost:9205/testindexer/indexer/_delete_by_query?conflicts=proceed: HTTP/1.1 400错误请求{"错误":{"root_cause":[{"类型":"illegal_argument_exception","原因":"请求[/testindexer/indexer/_delete_by_query]包含无法识别的参数:[冲突]"}],"类型":"illegal_argument_exception","原因":"请求[/testindexer/indexer/_delete_by_query]包含无法识别的参数:[冲突]"},"状态": 400}

此外,当我运行它而没有冲突时,我得到的答案是文档已创建。为什么它的工作方式与此版本的留档不同?

以下是我的节点的状态:

{
  "name" : "indexernode",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "trP6UQg1SMKVyfR0qTEjYw",
  "version" : {
    "number" : "5.1.1",
    "build_hash" : "5395e21",
    "build_date" : "2016-12-06T12:36:15.409Z",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
 },
 "tagline" : "You Know, for Search"
}

共有1个答案

壤驷穆冉
2023-03-14

旁注:这不是删除所有索引数据的正确方法,但我想您已经意识到了这一点。

您能否尝试将restClient中的参数作为参数而不是URL的一部分提供,以确保这不是问题所在。

我认为这里的主要问题是,你说你正在运行自己的嵌入式版本elasticsearch(这就是你在内存中的意思)。您是否已检查reindex插件是否与该版本一起安装?

 类似资料:
  • 问题内容: 我正在使用嵌套集模型在iPhone上的本地SQLite数据库中存储较大的数据层次结构。我从他们的网站上阅读了MySQL技术文章,了解如何执行此操作,但是他们建议的查询(以及我需要的查询)之一似乎不适用于SQLite,并且我不确定如何解决它。 SQLite报告不是列,我认为这是因为其子查询实现不完整。有人对如何解决此限制有任何想法吗? 查询的目的是获取给定父节点的所有直接子代。 问题答案

  • 我试图将变量插入数据库中的一个表中,由于某种原因,insert查询没有将我的值插入到所述数据库中。我已经测试了“test_input”函数,它工作得很好,我知道连接正在工作,因为我稍后在代码中使用的一个SELECT查询正在工作。我也知道输入是在$_PostSuperGlobal中,所以我认为这可能与insert查询有关,排除了其他可能性。这个查询有什么问题吗?以下是我的php代码: 这是我的HTM

  • 我一直在努力让tax_query在WP_Query工作。代码如下: 肯定有帖子类型为“谈话”——如果我去掉tax_query部分,正确的帖子显示得很好。有5个谈话使用正确的分类术语“周日谈话”(如果我试图使用ID而不是鼻涕虫,也不起作用)。 奇怪的是,如果我将帖子类型改为“post”,将分类法改为“category”,并省略“field”和“terms”部分,那么它会返回我唯一一篇没有任何术语的帖

  • 问题内容: 我有一个响应迅速的网页。它利用媒体查询。 但是在iframe中加载的同一页面无法正常工作。 例如,考虑到我的网页,当屏幕宽度小于640px时,我将背景色设置为红色。 因此,当我在新标签页中加载该窗口并使浏览器宽度小于640px时,背景颜色变为红色。 但是,在以320 * 480尺寸的iframe加载时,同一窗口没有红色的背景色。 如何使媒体查询在iframe中工作? 问题答案: 以这种

  • 问题内容: 我正在尝试从名为user_enrole的表中删除所有记录。 我认为查询的语法没有错,但这给了我错误提示 #1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’* FROM user_enrole’附近使用正确的语法 我已经仔细检查了我的语法,但我无法找出问题出在哪里,请有人指出。 是由于该表与使用表之间的关系而发生的还是什么? 问题答案: 您无需在删

  • 你能帮我解决这个问题吗?我想使用此方法在我的数据库中查找特定的缺口(它是由Apache Derby制作的)。我使用了EntityManager并从NetBeans中的数据库中映射持久性-实体类。 我得到这个错误: Java . lang . illegalargumentexception:在EntityManager中创建查询时出现异常:< br >异常描述:解析[SELECT * FROM U