我在neo4j中有一个图形数据库,我正在构建它,并且需要能够在索引引用的节点上搜索完整或部分文本。下面是一个示例节点,我可以使用名为Game的索引进行搜索:
Node[1]{Type:"Game",Name:"Super Mario Kart",Description:"First Mario Kart Game in the series",Id:"a3b11cd8-b179-4775-a69e-ddcdd7b8369e"}
以下是我正在使用的Cyper查询:
START game=node:Game('Name:*Super Mario*') RETURN game;
然而,此查询不会返回任何内容。如果我像这样修改查询,它会返回,但我希望能够搜索Name属性中的所有文本,无论文本中是否有空格:
START game=node:Game('Name:*Super*') RETURN game;
这是我查询索引的C#代码:
Node<Game> game = client.QueryIndex<Game>("Game", IndexFor.Node, "Name:*" + name + "*").First();
这是Game实体类:
public class Game
{
public string Name { get; set; }
public string Description { get; set; }
}
我是Cypher的新手,我主要寻找的是SQL的LIKE子句。一旦我在Neo4j的控制台中正确构建和运行查询,在Neo4jClient中工作应该是微不足道的。如果您有任何建议,请告知我们。感谢。
答案 0 :(得分:2)
事实证明,搜索所有文字就像这样简单:
START game=node:Game('Name: "Mario Kart"') RETURN game;
这根本不需要'*'字符,并返回所有名称为'Mario Kart'的游戏。我希望这可以帮助任何有同样问题的人。