假设我通过DirectedBy和Starring边缘将Movie顶点连接到Person顶点。
考虑一下这个按预期工作的OrientDB查询:
选择*,输出(" DirectedBy")。姓名,输出("主演")。电影中的姓名(" DirectedBy")CONTAINS(姓名) ='约翰福特')
正确地返回所有由人物导演的电影,其名称为#34; John Ford"。但是,我想使用Lucene全文搜索来执行查询,以提供更多的灵活性。
我认为我的索引设置正确,因为直接在Persons表上的查询成功会产生结果:
从姓名lucene' John Ford'
的人中选择*
然而,在我的Movie顶点查询中尝试使用lucene运算符不会产生任何结果:
选择*,输出(" DirectedBy")。姓名,输出("主演")。电影中的姓名(" DirectedBy")CONTAINS(姓名) LUCENE' John Ford')
我做错了吗?或者我想做一些不可能的事情?
答案 0 :(得分:1)
为了使用LUCENE,你应该用它来执行SELECT,而不是在contains中。试试这应该超级快:
in("DirectedBy")
内部SELECT使用LUCENE找到“John Ford”,然后通过expand()
穿过连接的电影。我使用了IF !var1! == !var2! (
GOTO :Success
) ELSE (
GOTO :Failure
)
,因为您需要在外部SELECT中显示所需信息的结果。