neo4j - 如何实现模糊搜索

标签 neo4j cypher

我正在使用 Neo4j 3 REST API,我有名为 customer 的节点,它具有名称等属性,我需要获取客户名称的搜索结果,例如,我应该为我的输入“joan”获取名称“john”的结果。如何实现模糊搜索以获得我想要的结果。

提前致谢

最佳答案

首先,我想让您知道,如果您使用 Neo4j 3.x,则 3.x 目前处于测试阶段,尚未被认为是稳定的。

您有两种选择在 Neo4j 中实现模糊搜索。您可以使用 legacy indexes实现基于 Lecene 的索引。这应该提供 Lucene 可以做的任何事情,尽管您可能需要做更多的工作。您还可以实现自己的unmanaged extension这将使您能够更直接地使用 Lucene。

也许更简单的选择是将elasticsearch与Neo4j结合使用,并让elasticsearch进行全文索引。您可以看一下Neo4j and ElasticSearch neo4j.com 上的页面。他们在那里提供了一个指向 GitHub repository 的链接。这是 Neo4j 的一个插件,它会使用 Neo4j 中的数据自动更新 ElasticSearch,并提供用于模糊查询图形的端点。还有一个video tutorial关于如何做到这一点。

关于neo4j - 如何实现模糊搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569696/

相关文章:

postgresql - 如何导入或同步数据到Neo4?

python - 我为 Neo4j 做的 Python 对象映射是否太天真了?

neo4j - START n = 节点(*) 和 MATCH (n) 之间的区别

neo4j - 节点应该直接比较还是必须先通过 ID() 进行比较?

neo4j - 查询以显示 Neo4j 中的二级(间接)关系

neo4j - 使用 neo4j 可视化高度链接的图形

neo4j - 从节点数组属性中删除重复项

neo4j - 如何向现有节点neo4j cypher添加属性?

java - 如何防止 Jersey 在解析为 json 时将数字字段解析为字符串?

neo4j - py2neo 2.0 : ERROR:httpstream:! SocketError:超时