下面都是针对中文索引的
建立索引
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
最后一个参数是返回结果的最大数量。
结果如下:
删除索引
CALL apoc.index.remove('myIndex')
一个索引对应多个标签
多次创建一个名称的索引,每次对应不同的标签,查询时只要针对这个索引就可以查到很多标签里的节点
返回结果为JSON文件
这是个可能比较有用的功能,记录一下:
match (n:Item) return casia.convert.json(n) limit 10
结果如下,实际上每条结果是一个Json格式的文件
试了一下,针对中文全文检索的结果也可以打包成Json!
CALL zdr.index.chineseFulltextIndexSearch('myIndex', 'definition:定义', 200) YIELD node RETURN casia.convert.json(node)
问题
全文检索时输入任何单个文字都会把含有这个字的结果返回了,应该不回结果才对呀,难道对每个文字都做了倒排索引?后面有时间要回头看看这个问题的。