索引 Neo4j 以与 Elasticsearch 一起工作
Index Neo4j to work with Elasticsearch
我正在尝试安装图形辅助搜索以将 Neo4j 与 ElasticSearch (2.3.1) 集成,如图 here 所示。但我正在努力用 curl 定义索引。
当我尝试任何像这样的 curl 命令时:
curl -XPUT http://localhost:9200/Person/_settings?index.gas.neo4j.user=neo4j
我收到此错误消息:
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"Person","index":"Person"}],"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"Person","index":"Person"},"status":404}
让我们以电影数据库(电影,人物)为例。我如何定义和配置 Neo4j
来索引 Movie
和 Person
,以便我可以用 Elasticsearch
调用它们?
更新
例如:
CURL XGET http://localhost:9200/person/_search?pretty=true
我得到这个结果:
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
但实际上我期望的是 return 所有 Person
节点。
如何告诉 Elasticsearch
的 person
索引指向 Neo4j
中的 Person
节点?
这些是 person
索引的设置:
curl XGET http://localhost:7474/person/_settings?pretty
{
"person" : {
"settings" : {
"index" : {
"gas" : {
"enable" : "false",
"neo4j" : {
"user" : "neo4j",
"hostname" : "http://localhost:7474",
"password" : "neo4j."
}
},
"creation_date" : "1495006378748",
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "PuNk1GskRrW5_1BbGGWPiA",
"version" : {
"created" : "2030299"
}
}
}
}
}
将 GraphAidedSearch 设置添加到 ES 索引需要创建此索引,如所提到的错误。
您可以通过发出以下 CURL 请求来执行此操作:
CURL -XPUT "http://localhost:9200/Person
使用 Elasticsearch 扩展(插件)可以通过基于图形的推荐来增强搜索结果,这要求您至少对 Elasticsearch 本身有最低限度的了解。
我强烈建议您在使用任何插件之前先学习 Elasticsearch 的基础知识。
我正在尝试安装图形辅助搜索以将 Neo4j 与 ElasticSearch (2.3.1) 集成,如图 here 所示。但我正在努力用 curl 定义索引。
当我尝试任何像这样的 curl 命令时:
curl -XPUT http://localhost:9200/Person/_settings?index.gas.neo4j.user=neo4j
我收到此错误消息:
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"Person","index":"Person"}],"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"Person","index":"Person"},"status":404}
让我们以电影数据库(电影,人物)为例。我如何定义和配置 Neo4j
来索引 Movie
和 Person
,以便我可以用 Elasticsearch
调用它们?
更新
例如:
CURL XGET http://localhost:9200/person/_search?pretty=true
我得到这个结果:
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
但实际上我期望的是 return 所有 Person
节点。
如何告诉 Elasticsearch
的 person
索引指向 Neo4j
中的 Person
节点?
这些是 person
索引的设置:
curl XGET http://localhost:7474/person/_settings?pretty
{
"person" : {
"settings" : {
"index" : {
"gas" : {
"enable" : "false",
"neo4j" : {
"user" : "neo4j",
"hostname" : "http://localhost:7474",
"password" : "neo4j."
}
},
"creation_date" : "1495006378748",
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "PuNk1GskRrW5_1BbGGWPiA",
"version" : {
"created" : "2030299"
}
}
}
}
}
将 GraphAidedSearch 设置添加到 ES 索引需要创建此索引,如所提到的错误。
您可以通过发出以下 CURL 请求来执行此操作:
CURL -XPUT "http://localhost:9200/Person
使用 Elasticsearch 扩展(插件)可以通过基于图形的推荐来增强搜索结果,这要求您至少对 Elasticsearch 本身有最低限度的了解。
我强烈建议您在使用任何插件之前先学习 Elasticsearch 的基础知识。