【问题标题】:Neo4j Comparing string elements in array to php variableNeo4j 将数组中的字符串元素与 php 变量进行比较
【发布时间】:2014-04-30 23:49:22
【问题描述】:

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

$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 看起来很棒”。我正在尝试将该节点的内容与单词数组的内容进行比较,当它将数组单词之一与帖子中的某个单词匹配时,它会返回该单词。

【问题讨论】:

    标签: php neo4j


    【解决方案1】:

    您的查询似乎完全关闭:

    1. 你不会在任何地方使用你的“词”
    2. 不确定.$mostRecentPost 代表什么
    3. 您的正则表达式与单词完全无关

      WITH["Batman","Jaws","Fun","Baseball","Halo","PS4","Nike","Jeep","Mustang"] AS 字样 匹配(n.Keywords) WHERE ".$mostRecentPost." =~'(?i).n.kw.' 字数 返回n

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

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

    并为正则表达式字符串使用参数

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多