java - 带java API的Elastic search 6.2,如何自动生成ID?

标签 java elasticsearch

我想插入带有自动生成 ID 的数据。我插入一个“用户”,如下所示:

java.util.Map<String, Object> jsonMap = new HashMap<String, Object>();
        jsonMap.put("username", user.username);
        jsonMap.put("password", user.password);
        jsonMap.put("mail", user.mail);
        jsonMap.put("friends", user.friends);
        jsonMap.put("maps", user.maps);
        IndexRequest indexRequest = new IndexRequest("users", "doc",user.username)
                .source(jsonMap)
                .opType(DocWriteRequest.OpType.CREATE);

这里,user.username 是我的 ID。如果我删除此参数,则会在执行时出错,因为我没有任何用户 ID。 (我尝试这样做是因为我读到如果我不输入任何 ID,我应该有一个自动递增的 ID)。 我在文档中没有找到任何可以帮助我的内容(或者也许我不理解它)。

最佳答案

我解决了我的问题。我需要将 opType 设置为“INDEX”而不是“CREATE”。然后我可以使用 id() 函数

关于java - 带java API的Elastic search 6.2,如何自动生成ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50062156/

相关文章:

elasticsearch - 无法为带有错误消息的索引创建映射设置

elasticsearch - 无法通过kubernetes入口调用外部资源

security - 我们是否需要 X-Pack 来启用 Elasticsearch 和 kibana 中的安全性?

elasticsearch - Fluentbit Kubernetes - 如何从现有日志中提取字段

java - ModelAndView中如何使用Redirect

java - 如何在 java 接口(interface)中使用泛型?

java - 根据在 Elasticsearch 中使用的给定CIDR范围从IP地址文件中查询以获取记录集

java - 如何用java将套接字绑定(bind)到IP?

java - java 中的正则表达式字段

elasticsearch - 使用分析器的Elasticsearch多字,多字段搜索