Indexing 标签索引上的正则表达式搜索(cypher)

Indexing 标签索引上的正则表达式搜索(cypher),indexing,neo4j,label,cypher,Indexing,Neo4j,Label,Cypher,这与提出的问题类似 我有一个有效的查询: match (n:Campus {name:'Georgia Southern University'}) return n; 一排 38毫秒 然而,我正在构建一个搜索功能,在这里我希望能够有一个用户类型“georgia”,并从校园标签索引返回一个节点列表,其名称类似于“georgia” 此查询在neo4j-community-2.0.0中不起作用(尽管在-M05中起作用): 0行 29毫秒 我的表达不正确吗?很有可能,知道我的残疾 使用正则表达式 否

这与提出的问题类似

我有一个有效的查询:

match (n:Campus {name:'Georgia Southern University'}) return n;
一排 38毫秒

然而,我正在构建一个搜索功能,在这里我希望能够有一个用户类型“georgia”,并从校园标签索引返回一个节点列表,其名称类似于“georgia”

此查询在neo4j-community-2.0.0中不起作用(尽管在-M05中起作用):

0行 29毫秒

  • 我的表达不正确吗?很有可能,知道我的残疾 使用正则表达式
  • 否则,是否可以对标签索引执行正则表达式搜索
  • 谢谢

    编辑:更多信息,neo4j外壳的输出:

    neo4j-sh (?)$ match (n:Campus {name:'Georgia Southern University'}) return n.name;
    +-------------------------------+
    | n.name                        |
    +-------------------------------+
    | "Georgia Southern University" |
    | "Georgia Southern University" |
    +-------------------------------+
    2 rows
    45 ms
    neo4j-sh (?)$ match (n:Campus) where n.`name` =~ '(?i).*Georgia.*' return n;
    +---+
    | n |
    +---+
    +---+
    0 row
    10 ms
    

    在2.0.0-RC1中尝试了您的查询,效果良好:

    CREATE (n:Campus {name:'Georgia Southern University'}) RETURN n
    CREATE (n:Campus {name:'lil georgia'}) RETURN n
    CREATE (n:Campus {name:'CAP GEORGIA CAP'}) RETURN n
    CREATE (n:Campus {name:'East Georgia Tech'}) RETURN n
    
    
    MATCH (n:Campus) 
        WHERE n.`name` =~ '(?i).*georgia.*'
        RETURN n    
    
    ...
    
    Returned 4 rows in 156 ms
    

    在2.0.0-RC1中尝试了您的查询,效果良好:

    CREATE (n:Campus {name:'Georgia Southern University'}) RETURN n
    CREATE (n:Campus {name:'lil georgia'}) RETURN n
    CREATE (n:Campus {name:'CAP GEORGIA CAP'}) RETURN n
    CREATE (n:Campus {name:'East Georgia Tech'}) RETURN n
    
    
    MATCH (n:Campus) 
        WHERE n.`name` =~ '(?i).*georgia.*'
        RETURN n    
    
    ...
    
    Returned 4 rows in 156 ms
    

    在2.0.0-RC1中尝试了您的查询,效果良好:

    CREATE (n:Campus {name:'Georgia Southern University'}) RETURN n
    CREATE (n:Campus {name:'lil georgia'}) RETURN n
    CREATE (n:Campus {name:'CAP GEORGIA CAP'}) RETURN n
    CREATE (n:Campus {name:'East Georgia Tech'}) RETURN n
    
    
    MATCH (n:Campus) 
        WHERE n.`name` =~ '(?i).*georgia.*'
        RETURN n    
    
    ...
    
    Returned 4 rows in 156 ms
    

    在2.0.0-RC1中尝试了您的查询,效果良好:

    CREATE (n:Campus {name:'Georgia Southern University'}) RETURN n
    CREATE (n:Campus {name:'lil georgia'}) RETURN n
    CREATE (n:Campus {name:'CAP GEORGIA CAP'}) RETURN n
    CREATE (n:Campus {name:'East Georgia Tech'}) RETURN n
    
    
    MATCH (n:Campus) 
        WHERE n.`name` =~ '(?i).*georgia.*'
        RETURN n    
    
    ...
    
    Returned 4 rows in 156 ms
    

    由于@cod3monk3y,问题得以解决。我正在将我的数据库从neo4j-community-2.0.0-M05版本升级到新的稳定版本。上面的干净数据库测试让我相信这是我的数据库。显然,启动期间的升级过程在标签方面失败了

    如果我使用“rm-l”命令删除标签,然后使用“set”再次设置相同的标签,则搜索工作正常

    neo4j-sh (0)$  match (n:Campus {name: 'Boise State University'}) return id(n), n.name;
    +----------------------------------+
    | id(n) | n.name                   |
    +----------------------------------+
    | 2772  | "Boise State University" |
    +----------------------------------+
    1 row
    77 ms
    neo4j-sh (0)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n;
    +---+
    | n |
    +---+
    +---+
    0 row
    215 ms
    neo4j-sh (0)$ cd 2772
    neo4j-sh (Boise State University,2772)$ ls
    :Campus (plus a lot of other properties)
    neo4j-sh (Boise State University,2772)$ rm -l Campus
    neo4j-sh (Boise State University,2772)$ set -l Campus
    neo4j-sh (Boise State University,2772)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n.`name`;
    +--------------------------+
    | n.`name`                 |
    +--------------------------+
    | "Boise State University" |
    +--------------------------+
    1 row
    72 ms
    
    我以前使用下面的代码首先设置标签(在标签出现之前,我将_handle属性设置为组节点):


    我将修改它以删除旧标签,然后重新设置它们。

    由于@cod3monk3y,问题得以解决。我正在将我的数据库从neo4j-community-2.0.0-M05版本升级到新的稳定版本。上面的干净数据库测试让我相信这是我的数据库。显然,启动期间的升级过程在标签方面失败了

    如果我使用“rm-l”命令删除标签,然后使用“set”再次设置相同的标签,则搜索工作正常

    neo4j-sh (0)$  match (n:Campus {name: 'Boise State University'}) return id(n), n.name;
    +----------------------------------+
    | id(n) | n.name                   |
    +----------------------------------+
    | 2772  | "Boise State University" |
    +----------------------------------+
    1 row
    77 ms
    neo4j-sh (0)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n;
    +---+
    | n |
    +---+
    +---+
    0 row
    215 ms
    neo4j-sh (0)$ cd 2772
    neo4j-sh (Boise State University,2772)$ ls
    :Campus (plus a lot of other properties)
    neo4j-sh (Boise State University,2772)$ rm -l Campus
    neo4j-sh (Boise State University,2772)$ set -l Campus
    neo4j-sh (Boise State University,2772)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n.`name`;
    +--------------------------+
    | n.`name`                 |
    +--------------------------+
    | "Boise State University" |
    +--------------------------+
    1 row
    72 ms
    
    我以前使用下面的代码首先设置标签(在标签出现之前,我将_handle属性设置为组节点):


    我将修改它以删除旧标签,然后重新设置它们。

    由于@cod3monk3y,问题得以解决。我正在将我的数据库从neo4j-community-2.0.0-M05版本升级到新的稳定版本。上面的干净数据库测试让我相信这是我的数据库。显然,启动期间的升级过程在标签方面失败了

    如果我使用“rm-l”命令删除标签,然后使用“set”再次设置相同的标签,则搜索工作正常

    neo4j-sh (0)$  match (n:Campus {name: 'Boise State University'}) return id(n), n.name;
    +----------------------------------+
    | id(n) | n.name                   |
    +----------------------------------+
    | 2772  | "Boise State University" |
    +----------------------------------+
    1 row
    77 ms
    neo4j-sh (0)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n;
    +---+
    | n |
    +---+
    +---+
    0 row
    215 ms
    neo4j-sh (0)$ cd 2772
    neo4j-sh (Boise State University,2772)$ ls
    :Campus (plus a lot of other properties)
    neo4j-sh (Boise State University,2772)$ rm -l Campus
    neo4j-sh (Boise State University,2772)$ set -l Campus
    neo4j-sh (Boise State University,2772)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n.`name`;
    +--------------------------+
    | n.`name`                 |
    +--------------------------+
    | "Boise State University" |
    +--------------------------+
    1 row
    72 ms
    
    我以前使用下面的代码首先设置标签(在标签出现之前,我将_handle属性设置为组节点):


    我将修改它以删除旧标签,然后重新设置它们。

    由于@cod3monk3y,问题得以解决。我正在将我的数据库从neo4j-community-2.0.0-M05版本升级到新的稳定版本。上面的干净数据库测试让我相信这是我的数据库。显然,启动期间的升级过程在标签方面失败了

    如果我使用“rm-l”命令删除标签,然后使用“set”再次设置相同的标签,则搜索工作正常

    neo4j-sh (0)$  match (n:Campus {name: 'Boise State University'}) return id(n), n.name;
    +----------------------------------+
    | id(n) | n.name                   |
    +----------------------------------+
    | 2772  | "Boise State University" |
    +----------------------------------+
    1 row
    77 ms
    neo4j-sh (0)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n;
    +---+
    | n |
    +---+
    +---+
    0 row
    215 ms
    neo4j-sh (0)$ cd 2772
    neo4j-sh (Boise State University,2772)$ ls
    :Campus (plus a lot of other properties)
    neo4j-sh (Boise State University,2772)$ rm -l Campus
    neo4j-sh (Boise State University,2772)$ set -l Campus
    neo4j-sh (Boise State University,2772)$ match (n:Campus) where n.`name` =~ '(?i).*Boise.*' return n.`name`;
    +--------------------------+
    | n.`name`                 |
    +--------------------------+
    | "Boise State University" |
    +--------------------------+
    1 row
    72 ms
    
    我以前使用下面的代码首先设置标签(在标签出现之前,我将_handle属性设置为组节点):


    我只需修改它以删除旧标签,然后重新设置它们。

    谢谢您提供的信息,@cod3monk3y;我使用的是2013年11月12日发布的“稳定”版本。也许我的索引有问题?有没有办法检查索引?如果索引搞砸了,我的第一个查询是否有效?我看到了您的新输出。真奇怪!你在哪个站台?你能创建一个新的数据库并运行我上面列出的5条语句,看看它们是否在一个新的环境中工作吗?我在Ubuntu 13.04上。我现在正在尝试安装Debian软件包。无法使其识别limits.conf设置。我试试你的陈述看看有什么事。看到上面的代码,我意识到我只是在使用标签进行搜索,而索引应该会加快搜索速度。对吧?你的成功了!它一定是我的数据库…我在“neo4j.properties”中取消了“allow_store_upgrade=true”的注释,但它仍然不起作用。谢谢你的帮助!谢谢你的信息,@cod3monk3y;我使用的是2013年11月12日发布的“稳定”版本。也许我的索引有问题?有没有办法检查索引?如果索引搞砸了,我的第一个查询是否有效?我看到了您的新输出。真奇怪!你在哪个站台?你能创建一个新的数据库并运行我上面列出的5条语句,看看它们是否在一个新的环境中工作吗?我在Ubuntu 13.04上。我现在正在尝试安装Debian软件包。无法使其识别limits.conf设置。我试试你的陈述看看有什么事。看到上面的代码,我意识到我只是在使用标签进行搜索,而索引应该会加快搜索速度。对吧?你的成功了!它一定是我的数据库…我在“neo4j.properties”中取消了“allow_store_upgrade=true”的注释,但它仍然不起作用。谢谢你的帮助!谢谢你的信息,@cod3monk3y;我使用的是2013年11月12日发布的“稳定”版本。也许我的索引有问题?有没有办法检查索引?如果索引搞砸了,我的第一个查询是否有效?我看到了您的新输出。真奇怪!你在哪个站台?你能创建一个新的数据库并运行我上面列出的5条语句,看看它们是否在一个新的环境中工作吗?我在Ubuntu 13.04上。我现在正在尝试安装Debian软件包。无法使其识别limits.conf设置。我试试你的陈述看看有什么事。看到上面的代码,我意识到我只是在使用标签进行搜索,而索引应该会加快搜索速度。对吧?你的成功了!它一定是我的数据库…我在“neo4j.properties”中取消了“allow_store_upgrade=true”的注释,但它仍然不起作用。谢谢你的帮助!谢谢你的信息,@cod3monk3y;我正在使用发布的“稳定”