【问题标题】:Build a lucene kind of query for searching text on various properties in neo4j Cypher 2.x构建一种 lucene 类型的查询,用于在 neo4j Cypher 2.x 中搜索各种属性的文本
【发布时间】:2015-12-09 07:27:08
【问题描述】:

我的实体是这样的

public class event
    {
        String title;

        String description;

        String city;
    }

现在我想在用户输入“Hello Hyderabad Fest”时实现搜索功能

我想要标记大小的字符串并拆分成单词并在节点上的任何属性上找到任何单词匹配

我们如何使用密码查询或构建 lucene 类型的查询来实现这一点,顺便说一下,我使用的是 spring data neo4j3.x。 我们可以通过 neo4j 命名查询作为查询参数传递 lucene 查询吗? 我们可以动态传递 neo4j 命名查询中的 where 条件吗 提前致谢。

【问题讨论】:

    标签: spring search neo4j lucene spring-data-neo4j


    【解决方案1】:

    Cypher 文本搜索功能 STARTS WITHCONTAINS 可能会在这里有所帮助:

    MATCH (e:Event) WHERE e.title STARTS WITH {user_input}
    RETURN e
    

    MATCH (e:Event) WHERE e.description CONTAINS {user_input}
    RETURN e
    

    要对空格进行标记并返回所有属性中的任何单词匹配项,您可以尝试以下操作:

    WITH split({user_input}, " ") AS words
    UNWIND words AS word
    MATCH (e:Event) WHERE e.title CONTAINS word 
        OR e.description CONTAINS word
        OR e.city CONTAINS word
    RETURN e
    

    在您的示例中,{user_input} 是“Hello Hyderabad Fest”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      相关资源
      最近更新 更多