简介
这是我的一个现有查询的样子:
MATCH
(p:Person { id: $p_id })-[k1:`KNOWS`]->(person:Person)
WHERE (// some criteria)
MATCH
(person)-[work:`WORKED_AT`]->(company:Company)
WHERE (work.title contains “Product Manager" and work.start_date is not null)
WITH person, work
RETURN
DISTINCT person.full_name, work.title
上述查询的问题在于它不区分大小写。因此,如果数据库中的实际标题是product manager
,则上述查询将失败。
所以我们尝试使用full text search index。我们在:work
关系上创建了索引,并验证了它的有效性,例如搜索:
call db.index.fulltext.queryRelationships(“<indexName>”, “CEO”)
yield relationship return reltionship.title limit 10
将返回类似于以下内容的内容:
CEO
Ceo
..etc
提问
如何将上述索引搜索应用于节点搜索?例如:
MATCH
(p:Person { id: $p_id })-[k1:`KNOWS`]->(person:Person)
WHERE (// some criteria)
MATCH
(person)-[work:`WORKED_AT`]->(company:Company)
WHERE //apply the db.index.fulltext.queryRelationships here on :work somehow
WITH person, work
RETURN
DISTINCT person.full_name, work.title
1条答案
按热度按时间dgtucam11#
我猜您首先必须使用索引获取关系,然后应用
MATCH
。试试这个:或者,您可以使用正则表达式执行不区分大小写的搜索。像这样: