索引 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 来索引 MoviePerson,以便我可以用 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 节点。 如何告诉 Elasticsearchperson 索引指向 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 的基础知识。