我正在尝试使用Apache骆驼在弹性搜索中插入一些针对某些ID的数据。我已经插入了依赖项:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-elasticsearch</artifactId>
</dependency>
我正在使用JSONObject,如下所示:
{
"indexId" : "someId",
"messages" : {"message1" : "data1", "message2":"data2"}
}
然后使用:
插入数据<to id="elastic_search_camel"
uri="elasticsearch://local?operation=INDEX&indexName=messages&indexType=message" />
我还可以通过使用operation = GET_BY_ID将数据打印回到控制台上。但是我看不到Kibana或localhost:9200中的索引/数据。
有人可以帮我吗? 预先感谢。
答案 0 :(得分:1)
您需要检查索引是否存在-可以运行
获取es-url:9200 / _cat / indices / messages *
,并确保索引存在。如果索引不存在,则索引存在问题-您需要预先创建索引,或者在弹性搜索和骆驼生成器中寻找导致索引失败的例外。
确保按预期方式在ES中对数据建立索引后,可以进入kibana->设置->索引模式,并为这些新的索引模式添加索引模式。之后,您将可以在kibana中查看数据
答案 1 :(得分:0)
我正在使用apache Camel连接到ElasticSearch服务器。骆驼创建了自己的elasticsearch集群,因此它没有连接到我目前运行的服务器。要停止这种特定行为,您需要在创建uri时明确指定IP和端口:
<to id="elastic_search_camel"
uri="elasticsearch://<clusterName>?operation=INDEX&indexName=messages&indexType=doc&ip=x.x.x.x&port=9300" />
注意:参数transportAddresses也可以用于指定ip:port格式的列表。请查看http://camel.apache.org/elasticsearch.html,以了解有关详情。
在config / elasticsearch.yml文件中指定相同的内容:
http.port: 9200
network.host: x.x.x.x
cluster.name: <clusterName>
network.bind_host: 0
maven中的依赖项:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.1.0</version>
</dependency>
在弹性搜索选项中,也可以使用elasticsearch-rest。 可以将路线指定为:
<to id="elastic_search_camel"
uri="elasticsearch-rest://<clusterName>?operation=INDEX&indexName=messages&indexType=doc&hostAddresses=x.x.x.x:9200" />
可通过以下网址获取文档:Elastic Search Rest
Maven dependencies :
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-elasticsearch-rest</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-elasticsearch-rest-starter</artifactId>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.1.0</version>
</dependency>