apoc.index.search 返回 OR 结果而不是执行 AND
apoc.index.search returning OR results instead of performing an AND
我已经使用以下 apoc 查询在一个字段上设置了全文索引
CALL apoc.index.addAllNodes("CompName", {Basic_company_data:["CompanyName"]})
似乎正确创建了索引。如果我然后 运行 这个查询
call apoc.index.search("CompName", "swaythling~") YIELD node as n return n
我得到了五个结果,这是意料之中的。
如果我然后 运行 相同的查询但带有 + 住房
call apoc.index.search("CompName", "swaythling~ + housing~") YIELD node as n return n
我返回了 100 个节点,而不是我期望的一个节点。这似乎是公司名称中带有 swaythling 或 housing 的节点总数,当我试图获得 swaythling AND housing 的结果时。
我可以通过两次 apoc 调用得到正确的结果,但我摔倒了,这是我应该能够做到的。
是我在设置索引时做错了什么,还是我在索引搜索中遗漏了什么?
基础索引是 lucene,我认为 +
表示必须存在下一个标记,我不认为它意味着 AND。您是否尝试过使用 &&
?`
我已经使用以下 apoc 查询在一个字段上设置了全文索引
CALL apoc.index.addAllNodes("CompName", {Basic_company_data:["CompanyName"]})
似乎正确创建了索引。如果我然后 运行 这个查询
call apoc.index.search("CompName", "swaythling~") YIELD node as n return n
我得到了五个结果,这是意料之中的。
如果我然后 运行 相同的查询但带有 + 住房
call apoc.index.search("CompName", "swaythling~ + housing~") YIELD node as n return n
我返回了 100 个节点,而不是我期望的一个节点。这似乎是公司名称中带有 swaythling 或 housing 的节点总数,当我试图获得 swaythling AND housing 的结果时。
我可以通过两次 apoc 调用得到正确的结果,但我摔倒了,这是我应该能够做到的。
是我在设置索引时做错了什么,还是我在索引搜索中遗漏了什么?
基础索引是 lucene,我认为 +
表示必须存在下一个标记,我不认为它意味着 AND。您是否尝试过使用 &&
?`