当前位置: 首页 > 知识库问答 >
问题:

在neo4j Cypher 2.x中构建一个lucene类型的查询,用于在各种属性上搜索文本

云煌
2023-03-14
public class event
    {
        String title;

        String description;

        String city;
    }

现在我想实现搜索功能时,一个用户输入“你好海德拉巴节”

我想要令牌大小的字符串和分裂成字,并找到任何字匹配的任何属性上的节点

我们如何使用cypher查询或构建lucene类查询来实现这一点,就像我使用spring data Neo4j3.x一样。我们可以通过neo4j命名查询作为查询参数传递lucene查询吗?我们可以在neo4j命名查询中动态地传递where条件吗,提前谢谢。

共有1个答案

封梓
2023-03-14

密码文本搜索函数开始,包含在这里可能会有所帮助:

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
 类似资料:
  • 我的任务是使用lucene在我们的产品表中搜索。我已经创建了一个索引,正在使用带有多个字段的QueryParser进行搜索,但结果不是我所需要的。我有一个存储为LM10的产品,但如果搜索词是LM 10,我希望能够找到它,但如果搜索词是Fred LM10或Fred LM 10,它也必须能够匹配。你知道我如何在Lucene做到这一点吗。 提前谢谢

  • 我将向你展示我的弹性配置,以及我是如何在Lucene上复制它的。 这是我创建索引的弹性搜索连接器: 以下是我的疑问:

  • 问题内容: 我有一个用例,其中在同一索引中有两种不同的类型。两种类型都有不同的结构和映射。 我需要使用不同的查询DSL同时查询这两种类型。 如何构建查询DSL以同时查询多个相同索引类型。 我在https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-index- multi- type.html上 查看了Elasticsea

  • 这是我想解决的问题: 我有多个Lucene索引,每个索引包含相同数据结构的子集(它们具有相同的字段,但是字段可能存在于文档中,也可能不存在于某个索引中) 索引之间共享一个全局标识符。也就是说,如果有4个索引,最多可能有4个文档共享一个密钥。 我有一个单一的Lucene查询 我使用一起查询所有索引,并且我能够使用找出命中来自哪个子索引。到目前为止还不错,但问题是: 为了执行一个(相当复杂的)合并逻辑

  • 问题内容: 我有三个食物类型索引:“意大利”,“西班牙”,“美国”。当用户搜索“奶酪”时,“意大利”文档似乎出现在顶部。如果我偏爱说“西班牙语”,是否可以“增强”结果?(我仍然应该获得意大利语的结果,但是基于索引类型“ Spanish”的一些数值提升值,结果中返回的文档的顺序将优先使用“ Spanish”索引。在用户输入的lucene和/或ES查询? 问题答案: 添加带有字词查询或字段(或两者都有

  • 在测试此文本时,我在要在文本中搜索的列上创建了lucene(3.0.1)索引: 如果我按关键字搜索,它会给出结果,但按 我正在使用standardAnalyzer: 因为已设置,它应创建令牌,并且应存在$GLD。Analyzer将从文本中删除停止字,因为word也将在该过程中删除。