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

Elasticsearch Java API索引文档

况景龙
2023-03-14

>

  • 下载了。90.6,解压缩,将弹性搜索移动到/usr/share/elasticsearch(在centosx64 6.4上具有chmod 777-r权限),将集群重命名为somethingdupd,并启动服务器

    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    import org.elasticsearch.client.Client;
    import org.elasticsearch.node.Node;
    
    import static org.elasticsearch.node.NodeBuilder.*;
    
    public class PostES {
    
        public static void main (String args[]){
            PostES p = new PostES();
            p.postElasticSearch();
        }
    
    
        public static Map<String, Object> putJsonDocument(String title, String content, Date postDate, String author){
    
                Map<String, Object> jsonDocument = new HashMap<String, Object>();
    
                jsonDocument.put("title", title);
                jsonDocument.put("conten", content);
                jsonDocument.put("postDate", postDate);
                jsonDocument.put("author", author);
    
                return jsonDocument;
        }
    
    
        private void postElasticSearch(){
    
                Node node    = nodeBuilder().node();
                Client client   = node.client();
    
                client.prepareIndex("testindex", "article")
                          .setSource(putJsonDocument("Example Title",
                                                     "This description is so important. You don't even know!",
                                                     new Date(),
                                                     "J.R."))
                                                     .execute().actionGet();
    
                node.close();
            }
    
    
    }
    

    根据文档,我应该能够做到这一点。但它也什么也不做:

    import static org.elasticsearch.node.NodeBuilder.nodeBuilder;
    
    import org.elasticsearch.action.index.IndexResponse;
    import org.elasticsearch.client.Client;
    import org.elasticsearch.node.Node;
    
    
    public class TestPostMethod2 {
    
        public static void main(String[] args) {
            Node node = nodeBuilder().local(true).node();
            Client client = node.client();
    
                String json = 
                        "{\"user\":\"kimchy\"," +
                        "\"postDate\":\"2013-01-30\"," +
                        "\"message\":\"trying out Elastic Search\"}";              
    
                IndexResponse response = client.prepareIndex("testindex", "article")
                        .setSource(json)
                        .execute()
                        .actionGet();
        }
    
    }
    
  • 共有1个答案

    司徒隐水
    2023-03-14

    您需要在创建节点时指定群集名称,并指定它是客户端节点,或者使用传输客户端。

    在这两种情况下,您目前正在做的是启动一个新节点,该节点使用默认名称创建一个新群集,同时希望有一个客户端节点加入现有群集。

    Node node = nodeBuilder().clusterName("somethingstupid").client(true).node();
    
     类似资料:
    • 当你要在 Elasticsearch 增加文档时,你就需要索引 JSON 文档。JSON 文档会映射 PHP 关联数组,因为 PHP 关联数组可以 encode 为 JSON 数据格式。 因此在 Elasticsearch-PHP 中你可以传递关联数组给客户端来索引文档。我们会概述几种方法来增加文档到 Elasticsearch。 单一文档索引 当索引一个文档时,你可以提供一个 ID 或者让 El

    • 我正在使用node.js连接到neo4j数据库。每当我必须为一个节点设置索引时,我都会通过转到neo4j浏览器(localhost:7474)来手动完成。 我构建了自己的nodejs适配器来连接到neo4j,因此目前我只能访问密码查询。要创建索引,我只能访问cypher或浏览器(7474)。那么创建自动全文索引的正确方法是什么,最好是从浏览器本身创建?我如何使用密码访问它(或者我必须访问它?neo

    • 以下列出了所有文件及其简要说明: daemon.h [code] fileconf.h [code] jitter.h [code] Packet.h [code] pcap-remote.h [code] incs/pcap.h [code] funcs/pcap.h [code] remote-ext.h [code] rpcapd.h [code] utils.h [code] Win32-

    • 问题内容: 我想在Elasticsearch中导入一个文本文件。文本文件每行包含3个值。经过数小时的奋斗,我没有完成它。非常感谢您的帮助。 安装了Logstash的Elasticsearch 5.4.0。 样本数据: 还构建了一个python脚本,但是它太慢了: 编辑:感谢它的工作,但我想我的筛选器很烂,因为我希望它看起来像这样: 然后将数据如下所示: 问题答案: 只需将其放入一个名为: 然后使用

    • 这是Lucene In Action Book中给出的一个程序。它只索引父文件夹中的文件而不是子文件夹中的文件。因此,我添加了一个if块以递归地查找子文件夹中的文件。但运行此程序后,它正在创建write.lock文件,即使在关闭命令提示符后,它仍继续创建索引文件。代码有什么问题? 我是和的新手,之前我尝试使用apache Commons io查找子文件夹,但我正在获取包不存在错误(包org.apa

    • 很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。 MySQL针对这一问题提供了一种基于内建的全文查找方式的解决方案。在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的M