Neo4j:全文lucene遗留索引(node_auto_index)在迁移后不起作用
使用从Neo4j 2.2.8成功迁移到3.0.4后,全文搜索无法按预期工作。模糊性不像以前那么模糊了 例如:Neo4j:全文lucene遗留索引(node_auto_index)在迁移后不起作用,neo4j,lucene,migration,database-migration,fuzzy-search,Neo4j,Lucene,Migration,Database Migration,Fuzzy Search,使用从Neo4j 2.2.8成功迁移到3.0.4后,全文搜索无法按预期工作。模糊性不像以前那么模糊了 例如: START n=node:node_auto_index('name:(+Target~0.85)')匹配(n)返回n; 应该返回具有字段名称的节点,这些节点包含类似于“Target”的85%的工作 在匹配以下内容之前: 目标 目标v2 迁移后: 目标 为什么以及如何解决这个问题?原因是迁移后lucene节点的自动索引配置不正确。迁移工具可能不尊重它的配置,或者是不正确的 解决方案是正
START n=node:node_auto_index('name:(+Target~0.85)')匹配(n)返回n;
应该返回具有字段名称的节点,这些节点包含类似于“Target”的85%的工作
在匹配以下内容之前:
目标
目标v2
迁移后:
目标
为什么以及如何解决这个问题?原因是迁移后lucene节点的自动索引配置不正确。迁移工具可能不尊重它的配置,或者是不正确的
解决方案是正确设置索引并重建它们
步骤:
检查您的/etc/neo4j/neo4j.conf
是否启用了自动索引,并将键设置为要自动索引的字段:
通过运行以下命令,检查节点\u自动\u索引
配置是否正确:
neo4j shell-c'索引--获取配置节点\u自动\u索引'
{
“analyzer”:“org.apache.lucene.analysis.standard.StandardAnalyzer”,
“提供者”:“lucene”,
“to_lower_case”:“true”,
“类型”:“全文”
}
如果它不符合您的要求,例如type
不是fulltext
,则运行以下命令:
neo4j shell-c'索引--设置配置节点\自动\索引类型全文'
neo4j shell-c'索引--将配置节点的自动索引设置为小写'
neo4j shell-c'index--set-config节点_auto_index analyzer org.apache.lucene.analysis.standard.StandardAnalyzer'
之后,您需要重新索引数据。根据dbms.auto_index.nodes.keys
设置(name
字段,在本例中),在数据集上运行以下密码:
将(n)存在的(n.name)与(n)跳过0限制50000设置n.name=n.name匹配;
将(n)存在的(n.name)与(n)跳过50000限制50000集合n.name=n.name匹配;
将(n)存在的位置(n.name)与(n)跳过100000限制50000集合n.name=n.name匹配;
// ...
以下步骤将帮助您在Neo4j 3.0中设置全文lucene索引,并重新索引您的现有数据。我们可以通过远程托管的Neo4j和java配置来实现这一点吗?@AbdullahAlNoman我不确定您是否可以完成第1点)。其他的可能。我自己不使用Java驱动程序,但我的驱动程序不太高级。
dbms.auto_index.nodes.enabled=true
dbms.auto_index.nodes.keys=name