你好stackoverflowers!
我尝试使用带有scala的库elastic4s,但是当我运行以下代码时(为了获取索引广告中的广告列表):
trait elastic4s {
def get: Future[SearchResponse] = {
val client = ElasticClient.local
client execute { search in "ads"->"ad" }
}
}
我遇到了这个例外:
An error has occured: org.elasticsearch.indices.IndexMissingException: [ads] missing
的Pastebin
这是我的配置:
-- Java
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
-- ElasticSearch
version 1.0.1
-- Elastic4s
version 2.10-1.0.1
在localhost:9200上启动并运行弹性搜索,并且此索引广告已存在。这个CURL请求:
curl -XGET 'http://localhost:9200/ads/ad/_search'
返回
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "ads",
"_type": "ad",
"_id": "UrKm89AXTzOxB9kFdpue4Q",
"_score": 1,
"_source": {
"json": "json"
}
}
]
}
}
我无法理解......如果有人能给我一个曲目:)
答案 0 :(得分:1)
本地节点无法与在该进程外部运行的其他Elasticsearch实例进行通信。本地节点是JVM的本地节点。
代码评论说:
"节点是否为本地节点。本地节点是使用本地节点的节点 (JVM级别)发现传输。其他(本地)节点在其中启动 将发现相同的JVM(实际上是类加载器) 与...沟通。将无法发现JVM外部的节点。"
您需要使用远程客户端连接到外部实例,即使它们在本地运行也是如此。我想这似乎是违反直觉的,但远程实际上意味着基于IPC或Socket。