django 有什么好方法对tags 的标题按字排序?

class Tags(models.Model):
    name = models.CharField(_(u'标签'), max_length=255)
    excerpt = models.TextField(_(u'简介'))
    
class Topic(models.Model):
    title = models.CharField(_(u'标题'), max_length=255)
    body = models.TextField(_(u'内容'))
    tags = models.ManyToManyField('Tags', verbose_name = _(u'标签'), blank = True)

如果tags 都是词语,如:高高兴兴 高大 很高 趾高气扬 高见 发高烧 挑高球 三高 升高 对应: tags.name

topic是单个字:高 对应:topic.title

怎么样 给tags 排序 分别挑出 高(topic.title) 开头的词 , 高在中间的词, 高在末尾的词?

    如下代码是想挑出 字高 开头的词语。并不成功!!
    
        tagslist = topic.tags.all()
        index_list = []
        for a, b in enumerate(tagslist):
                if str(b).find(str(topic.title))==0:
                    index_list.append(b)
        context['index_list'] = index_list

差不多就是要实现下面这个功能

image.png

有什么好办法实现吗?

阅读 1.5k
1 个回答

倒排索引,比如mysql的fulltext index或者postgresql的gin index都行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题