Django SearchRank性能与排名注释

时间:2018-04-18 21:27:53

标签: django postgresql search

我有一个索引良好的postgres表,行数为0.5百万。对其字段进行直接ORM文本搜索非常快速。但是,我想获得加权和排名搜索结果(加权相关性)。我这样做:

q_ = SearchQuery(val)
qs = Location.objects.annotate(
    rank=SearchRank(vector, q_)).filter(
        rank__gte=0.1).order_by('-rank')

(矢量未显示)

这样可行,并给出了预期的排名结果,但它很慢。当使用排名注释和排序时,搜索时间从小数毫秒上升到5秒以上。

同样,我已经完全索引了。有没有其他方法可以提高Django中针对大数据集的加权搜索结果的性能,不愿意转移到ElasticSearch或类似的?

0 个答案:

没有答案