【问题标题】:Neo4j: Lucene phrase matching using Cypher (fuzzy)Neo4j:使用 Cypher 的 Lucene 短语匹配(模糊)
【发布时间】:2014-10-22 14:56:38
【问题描述】:

In Lucene, a Phrase 是一组用双引号括起来的单词,例如“hello dolly”。 我希望能够执行此 Lucene 模糊查询的 CYPHER 等效项:

"hello dolly"~0.1

这会找到我的"hello dolly" 节点:

START n=node:node_auto_index("name:\"hello dolly\"~0.1") RETURN n

这不是:

START n=node:node_auto_index("name:\"hella dolly\"~0.1") RETURN n

通过空格将搜索短语拆分为单个词确实有效:

START n=node:node_auto_index("name:hella~0.1 AND name:dolly~0.1") return n

但是,我的数据可能包含像 "HelloDolly" 这样的字符串,我希望它与我的 "hello dolly" 节点成功匹配。

编辑:

其他一些尝试:

START n=node:node_auto_index("name:hello\\ dolly") RETURN n ----> 确实有效(找到我的“hello dolly”节点,但不模糊

START n=node:node_auto_index("name:hello\\ dolly~0.00001") RETURN n ----> 不起作用(什么也没找到)

【问题讨论】:

    标签: lucene neo4j cypher


    【解决方案1】:

    试试这个:

    START n=node:node_auto_index("name:hella\\ dolly~0.1") RETURN n
    

    【讨论】:

    • 没有找到“hello dolly”节点。我在问题编辑中添加了更多测试。
    【解决方案2】:

    这是一个老问题,但这可能对其他人有帮助:

    START n=node:node_auto_index('name:"hella dolly"~0.1') RETURN n
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 2014-06-11
      • 1970-01-01
      相关资源
      最近更新 更多