Neo4j在知识图谱中的应用(7)——建立中文全文索引并查询

下面都是针对中文索引的

建立索引

CALL zdr.index.addChineseFulltextIndex('myIndex', ["definition","name"], 'Item') YIELD message RETURN message

myIndex是索引名,中括号里是属性,Item是标签值。
如果需要创建随着数据插入自动更新的索引,用网上说有下列函数:

CALL zdr.index.addChineseFulltextAutoIndex('myIndex', ["definition","name"], 'Item',{autoUpdate:'true'}) YIELD message RETURN message

最后一个参数是说插入新节点时自动建立索引,但是新添加属性不会自动建立索引。但是我们找到这个插件,放弃了,每次导入新数据重新建立一次索引吧
如果创建成功返回如下信息:

"IndexName:myIndex,LabelName:Item,NodesSize:2,PropertiesSize:4"

查询语句如下:

CALL zdr.index.chineseFulltextIndexSearch('myIndex', 'definition:定义', 200) YIELD node RETURN node

最后一个参数是返回结果的最大数量。
结果如下:


Neo4j在知识图谱中的应用(7)——建立中文全文索引并查询_第1张图片
1.png

删除索引
CALL apoc.index.remove('myIndex')

一个索引对应多个标签

多次创建一个名称的索引,每次对应不同的标签,查询时只要针对这个索引就可以查到很多标签里的节点

返回结果为JSON文件

这是个可能比较有用的功能,记录一下:

match (n:Item) return casia.convert.json(n) limit 10

结果如下,实际上每条结果是一个Json格式的文件


Neo4j在知识图谱中的应用(7)——建立中文全文索引并查询_第2张图片
2.png

试了一下,针对中文全文检索的结果也可以打包成Json!

CALL zdr.index.chineseFulltextIndexSearch('myIndex', 'definition:定义', 200) YIELD node RETURN casia.convert.json(node)

问题

全文检索时输入任何单个文字都会把含有这个字的结果返回了,应该不回结果才对呀,难道对每个文字都做了倒排索引?后面有时间要回头看看这个问题的。

你可能感兴趣的:(Neo4j在知识图谱中的应用(7)——建立中文全文索引并查询)