基于NEO4J的高级检索功能
  FlJpWMh2LSTP 2023年11月02日 64 0


基于NEO4J的高级检索

  • ​​一、需求​​
  • ​​二、创建索引​​
  • ​​1、索引自动更新配置​​
  • ​​2、执行带有索引自动更新配置的过程​​
  • ​​三、查询索引​​
  • ​​1、LUCENE查询语法​​
  • ​​2、实现高级检索的核心:LUCENE QUERY语句拼接​​
  • ​​四、总结​​

一、需求

基于NEO4J实现类似万方的高级检索功能 万方链接

基于NEO4J的高级检索功能_facebook

二、创建索引

1、索引自动更新配置

// neo4j.conf设置此项会影响性能 开启自动更新索引(测试时数值类型字段在全文检索时无法索引)
apoc.autoIndex.enabled=true

2、执行带有索引自动更新配置的过程

CALL apoc.index.addAllNodes('FacebookID', {FacebookID:["CurrentCity","PoliticalViews","Gender"]},{autoUpdate:true});

三、查询索引

1、LUCENE查询语法

1、基础的查询语法,关键词查询:
   域名+“:”+搜索的关键字
   例如:content:java
2、范围查询
   域名+“:”+[最小值 TO 最大值]
   例如:size:[1 TO 1000]
   范围查询在lucene中支持数值类型,不支持字符串类型。在solr中支持字符串类型。
3、组合条件查询
 1)+条件1 +条件2:两个条件之间是并且的关系and
   例如:+filename:apache +content:apache
 2)+条件1 条件2:必须满足第一个条件,应该满足第二个条件
   例如:+filename:apache content:apache
 3)条件1 条件2:两个条件满足其一即可。
   例如:filename:apache content:apache
 4)-条件1 条件2:必须不满足条件1,要满足条件2
   例如:-filename:apache content:apache
4、组合条件查询
  条件1 AND 条件2 / 条件1 OR 条件2 / 条件1 NOT 条件2
5、模糊搜索* 相似搜索~
6、表达式分组
表示必须为男性,且括号中条件必须满足一个
例: +(FacebookID.locality:BeiJing FacebookID.ReligiousViews:Methodist) +FacebookID.Gender:男

Occur.MUST 查询条件必须满足,相当于and

+(加号)

Occur.SHOULD 查询条件可选,相当于or

空(不用符号)

Occur.MUST_NOT 查询条件不能满足,相当于not非

-(减号)

2、实现高级检索的核心:LUCENE QUERY语句拼接

// 必须为男性,括号内属性任意一个满足或者不满足都可以
CALL apoc.index.search("nodesProperties", "(FacebookID.CurrentCity:香港 FacebookID.PoliticalViews:共产党) +FacebookID.Gender:男 ",20) YIELD node RETURN node
// 必须不是男性,括号内属性任意有一个满足即可
CALL apoc.index.search("nodesProperties", "+(FacebookID.CurrentCity:香港 FacebookID.PoliticalViews:共产党) -FacebookID.Gender:男 ",20) YIELD node RETURN node
// 可以是男性,括号内属性没有一个满足
CALL apoc.index.search("nodesProperties", "-(FacebookID.CurrentCity:香港 FacebookID.PoliticalViews:共产党) FacebookID.Gender:男 ",20) YIELD node RETURN node

四、总结

1、多标签或者不指定标签检索,可以实现自定义过程将图库的属性字段直接建立索引而不指定标签,这样简化跨类型检索的查询。
2、为了支持中文分词全文索引,可以单独编写扩展插件以支持中文分词索引。这里是我实现的基于中文分词的全文索引过程(不包含索引自动更新)。​​​NEO4J插件开发​


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6JiBnf5NytA2   2023年11月13日   26   0   0 neo4j数据库实例
  3PLN4iWezbye   2023年11月13日   41   0   0 windowsneo4j
  6JiBnf5NytA2   2023年11月13日   28   0   0 neo4j数据库实例
  QFbc3MtZbTbh   2023年11月13日   25   0   0 neo4jneo4j安装
  M0zHyIUiUnqM   2023年11月02日   73   0   0 centosneo4j
  pntxtgITaE76   2023年11月13日   34   0   0 neo4j
  pntxtgITaE76   2023年11月13日   31   0   0 neo4j
FlJpWMh2LSTP