Neo4j将数组中的字符串元素与php变量进行比较

时间:2014-04-30 23:49:23

标签: php neo4j

我的数据库中的节点位于标签关键字下,单词作为属性。我想比较一个字符串($ mostRecentPost)与数组中的单词,单词。

$queryString ="WITH["Batman","Jaws","Fun","Baseball","Halo","PS4","Nike","Jeep","Mustang"] AS words MATCH (n.Keywords) WHERE ".$mostRecentPost." =~'(?i).*n.kw.*' IN words RETURN n";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString);
$relativePosts = $query->getResultSet();

基本上我们有一个示例$ mostRecentPost =一个节点,内容="新的Halo看起来很棒"。我试图将该节点的内容与单词数组的内容进行比较,当它与其中一个数组单词匹配时,它会返回该单词。

1 个答案:

答案 0 :(得分:0)

你的查询似乎完全没了:

  1. 你没有在任何地方使用你的“文字”
  2. 不确定.$mostRecentPost代表什么
  3. 你的正则表达式与所有单词无关

    WITH [“Batman”,“Jaws”,“Fun”,“Baseball”,“Halo”,“PS4”,“Nike”,“Jeep”,“Mustang”] AS words 比赛(n.Keywords) 在哪里“。$ mostRecentPost。” =〜'(?i)。 n.kw。'IN words 返回

  4. 你可以做(​​这不会很快):

    MATCH (n:Keywords) 
    WHERE n.text =~ '(?i).*(Batman|Jaws|Fun|...).*'
    RETURN n
    

    并使用regexp-string的参数

    应该使用全文搜索 和一个单词列表,请参阅此博客文章,了解有关如何使用Neo4j 2.0进行设置的一些信息http://jexp.de/blog/2014/03/full-text-indexing-fts-in-neo4j-2-0/