【问题标题】:Integration of elasticsearch with neo4j databaseelasticsearch与neo4j数据库的集成
【发布时间】:2018-07-09 03:47:24
【问题描述】:

我正在尝试将 elasticsearch 与我的 neo4j 数据库一起使用以进行快速查询。我尝试了许多网站,但它们都是旧文章,所以我没有任何明确的想法。我到现在为止的步骤,

  1. 已安装 neo4j
  2. 已安装弹性搜索
  3. 将粘贴的弹性搜索插件复制到 neo4j 插件文件夹中
  4. 将此行添加到neo4j。属性文件

    elasticsearch.host_name=http://localhost:9200
    

    elasticsearch.index_spec=people:Person(first_name,last_name), places:Place(name)

    我的问题是,

  5. elasticsearch 和 neo4j 是如何集成的。请澄清一下。

我跟着这个,

Link

【问题讨论】:

    标签: elasticsearch neo4j elasticsearch-plugin elasticsearch-5


    【解决方案1】:

    您必须安装 Apoc 程序插件 (https://github.com/neo4j-contrib/neo4j-apoc-procedures)。关于 ES 集成的文档在这里:ES Integration with Apoc procedures

    [编辑]

    • 下载 apoc.jar 并将其放到插件的 Neo4j 目录中,关于目标 Neo4j 版本

    • 重启 Neo4j

    • 在 Neo4j Web 浏览器中,启动以下 Cypher 查询以显示所有 ES 过程:

      CALL apoc.help("apoc.es")

    日志查询示例:

    CALL apoc.es.getRaw("localhost","_search?q=level:ERROR",null) 
    YIELD value 
    UNWIND value.hits.hits as hits
    RETURN hits LIMIT 100
    

    推荐的方式是在neo4j.conf中添加一个key(重启Neo4j后)保存ES主机:

    apoc.es.myKey.url=localhost

    那么查询看起来像:

    CALL apoc.es.getRaw("myKey","_search?q=level:ERROR",null) 
    YIELD value 
    UNWIND value.hits.hits as hits
    RETURN hits LIMIT 100
    

    【讨论】:

    • 是的,Dhyey 点是有效的。 @SylvainRoussy 如果可能的话,请您发布集成所需的所有基本内容。
    【解决方案2】:

    对于那些已经安装并可以访问 APOC 插件,但无法访问 neo4j.properties 文件(或者更愿意通过 curl 使用 ES)的人,您可以在不使用 apoc.es.getRaw 的情况下执行此操作,并且可以而是使用apoc.load.json返回的JSON:

    WITH "http://myelasticurl:9200/my_index/_search?q=level:ERROR" as search_url
    CALL apoc.load.json(search_url) YIELD value
    UNWIND value.hits.hits as hit
    WITH hit._source as source
    ...
    # do work
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多