【问题标题】:Neo4j: full-text lucene legacy indexes (node_auto_index) does not work after migrationNeo4j:全文 lucene 遗留索引(node_auto_index)在迁移后不起作用
【发布时间】:2017-01-09 04:07:09
【问题描述】:

使用official faq 从 Neo4j 2.2.8 成功迁移到 3.0.4 后,全文搜索无法按预期工作。模糊性不像以前那么模糊了。

例子:

START n=node:node_auto_index('name:(+Target~0.85)') MATCH (n) RETURN n;

应返回字段为 name 的节点,其中包含与“目标”相似 85% 的工作。

在匹配以下内容之前:

  1. 目标
  2. 目标 v2

迁移后:

  1. 目标

为什么以及如何解决这个问题?

【问题讨论】:

    标签: neo4j lucene migration database-migration fuzzy-search


    【解决方案1】:

    原因是迁移后 lucene node_auto_index 配置不正确。可能迁移工具不尊重其配置或损坏。

    解决方案是正确设置索引并重建它们。

    步骤:

    1. 检查您的/etc/neo4j/neo4j.conf 是否启用了 auto_index 并且键已设置为您想要自动索引的字段:
    dbms.auto_index.nodes.enabled=true                                                                                                                                                                                 
    dbms.auto_index.nodes.keys=name 
    
    1. 通过运行检查node_auto_index 配置是否正确:
    neo4j-shell -c 'index --get-config node_auto_index'
    {
        "analyzer": "org.apache.lucene.analysis.standard.StandardAnalyzer",
        "provider": "lucene",
        "to_lower_case": "true",
        "type": "fulltext"
    }
    
    1. 如果它不符合您的要求,例如type 不是fulltext,那么您运行以下命令:
    neo4j-shell -c 'index --set-config node_auto_index type fulltext'
    neo4j-shell -c 'index --set-config node_auto_index to_lower_case true'
    neo4j-shell -c 'index --set-config node_auto_index analyzer org.apache.lucene.analysis.standard.StandardAnalyzer'
    
    1. 之后,您需要重新索引您的数据。根据dbms.auto_index.nodes.keys 设置(本例中为name 字段),在您的数据集上运行以下密码:
    MATCH (n) WHERE EXISTS(n.name) WITH (n) SKIP 0 LIMIT 50000 SET n.name=n.name;
    MATCH (n) WHERE EXISTS(n.name) WITH (n) SKIP 50000 LIMIT 50000 SET n.name=n.name;
    MATCH (n) WHERE EXISTS(n.name) WITH (n) SKIP 100000 LIMIT 50000 SET n.name=n.name;
    // ...
    

    以下步骤将帮助您在 Neo4j 3.0 中设置全文 lucene 索引并重新索引您现有的数据。

    【讨论】:

    • 我们可以通过远程托管 neo4j 和 java 配置来做到这一点吗?
    • @AbdullahAlNoman 我不确定你能做到第 1 点)。其他的也许是可能的。我自己不使用 Java 驱动程序,但我的驱动程序不太先进。
    猜你喜欢
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多