在Neo4j中跨多个字段进行全文搜索的示例?

时间:2017-08-24 17:46:03

标签: neo4j

我已经看到一些简单的示例文字搜索STARTS WITH name,例如:

但我在多个字段中寻找更多全文搜索的内容:titlecontent

我能看到一个如何用Neo4j完成这个的例子吗?

1 个答案:

答案 0 :(得分:6)

您可以使用APOC Neo4j procedure library执行此操作。假设您有节点标签BookAuthor,并希望在:Book(title):Book(content):Author(name)以及{{1}之间进行全文查询}。首先,使用:Author(address)创建一个名为apoc.index.addAllNodes的索引,并指定要包含在索引中的标签和属性:

bookIndex

然后,搜索索引:

CALL apoc.index.addAllNodes('bookIndex',{
  Book: ["title","content"],
  Author:  ["name","address"]
})

您也可以将它用于更复杂的图形查询:

CALL apoc.index.search('bookIndex', 'River Runs Through It')
使用了

Lucene query syntax,因此您可以进行模糊搜索,字符串所需的组件等:CALL apoc.index.search('bookIndex, 'River Runs Through It') YIELD node AS book MATCH (book)-[:IN_GENRE]->(g:Genre) RETURN g 'Norman Maclean~'

有关详细信息,请参阅APOC docs