查询时如何使用索引
发布于 5 年前 作者 liutianling 2429 次浏览 来自 问答

首先假设场景 存在标签,老师,学生,医生,公务员,标签都已被设置成索引 我现在需要查找一个叫张伟的人(假设我只知道名字,不知道他的职业) name="张伟" 开始查询,如果查询时不给定标签,那么好像这个时候查询没用到索引,这个时候该如何优化索引? 初步想法1,所有标签循环,这个时候可以走索引,在大数据量时估计比不走索引要快, 其他办法?

7 回复

节点多标签,这批节点都加一个人的标签,在人这个类上建name索引

先考虑一下数据模型吧

@zhoujieren64 谢谢,厉害,很不错的办法。

@zhoujieren64 再请教一个问题,场景假设 存在三个节点,其name属性值相同,各自有不同的标签,但是value属性值(假设是民间威望哈)不同,具体如下 node1 = Node(“唐”,name=“关羽”, value=50) node2 = Node(“元”,name=“关羽”, value=20) node3 = Node(“清”, name=“关羽”, value=80) 如果,我想把这三个节点合并为一个,label可以通过多标签的方式处理,但是对应的value要怎么处理,直接给新节点设置三个不同value属性, 还是把value属性设置成一个list, 或者是其他的处理方式 我希望处理完以后,我再搜索 清,关羽的时候能返回80,谢谢。

我倾向与存三个节点,都是人节点,然后把朝代作为属性存在节点中(或者做个多标签看你喜欢),对朝代和name建索引,查询的时候通过两个属性去match对应节点,要查所有关羽的话也可以直接通过name去取所有朝代的

@zhoujieren64 多谢回复,我试过了,存一个节点(多标签)可能会存在标签顺序与value_list中标签对应value不匹配的问题 存三个节点(我是通过多标签的形式)是可行的。多谢!

@liutianling 那个标签传参数你解决了没有?

回到顶部