Neo4j:迁移后,全文lucene旧索引(node_auto_index)不起作用

时间:2016-09-01 10:11:03

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

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

示例:

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

返回包含字段name的节点,其中包含类似于'Target'的85%的工作。

在匹配以下内容之前:

  1. 目标
  2. 目标v2
  3. 迁移后:

    1. 目标
    2. 为什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

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

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

步骤:

  1. 检查您的/etc/neo4j/neo4j.conf是否启用了auto_index,并将密钥设置为您要自动编入索引的字段:
  2. dbms.auto_index.nodes.enabled=true                                                                                                                                                                                 
    dbms.auto_index.nodes.keys=name 
    
    1. 通过运行:
    2. 检查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,那么您运行以下内容:
      2. 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. 之后,您需要重新索引数据。根据{{​​1}}设置(此示例中为dbms.auto_index.nodes.keys字段),在您的数据集上运行以下cypher:
        2. name

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