我已经看到一些简单的示例文字搜索STARTS WITH
name
,例如:
但我在多个字段中寻找更多全文搜索的内容:title
,content
:
我能看到一个如何用Neo4j完成这个的例子吗?
答案 0 :(得分:6)
您可以使用APOC Neo4j procedure library执行此操作。假设您有节点标签Book
和Author
,并希望在: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。