我正在Django项目中执行以下查询:
for obj in Path.objects.filter(Q(server_name__exact=name),
Q(keywords__overlap=all_words)):
字段keywords
是一个ArrayField
,我使用的是overlap
过滤器,类似于python中的以下内容:
keywords.intersection(all_words) # if keywords is a set
现在的问题是,当all_words
是一个小列表,小于10时,它的工作速度非常快,但当all_words
是一个更大的数组,大于20-30时,它需要很多时间。你知道吗
有什么办法吗?我测试了其他方法,如以下,但没有任何不同。你知道吗
for obj in Path.objects.filter(server_name=name):
if all_words.intersection(obj.keywords):
目前没有回答
相关问题 更多 >
编程相关推荐