apoc.index.search返回OR结果而不是执行AND

时间:2018-03-06 07:37:38

标签: neo4j neo4j-apoc

我使用以下apoc查询

在一个字段上设置了全文索引
CALL apoc.index.addAllNodes("CompName", {Basic_company_data:["CompanyName"]})

似乎正确地创建了索引。如果我然后运行此查询

call apoc.index.search("CompName", "swaythling~") YIELD node as n return n

我得到五个结果,这是预期的。

如果我然后使用+ housing

运行相同的查询
call apoc.index.search("CompName", "swaythling~ + housing~") YIELD node as n return n

我返回了100个节点,而不是我期望的那个节点。当我试图获得swaythling和住房的结果时,这似乎是公司名称中包含swaythling OR住房的节点总数。

我可以通过做两个apoc调用来获得正确的结果,但我失败了,这是我应该能做的事情。

我在设置索引时做错了什么,或者我错过了索引搜索本身的内容?

1 个答案:

答案 0 :(得分:1)

基础索引是lucene,我认为+表示必须存在下一个标记,我认为这并不意味着AND。您是否尝试过使用&&