我正在使用Python,Flask,SQLalchemy和PostgreSQL开发网站。
在此应用中,用户将能够创建问答游戏。这些测验游戏都有标题和说明(长度应小,但用户可以自由编写所需的内容)。
在搜索测验时,我使用like
语句。我检查输入(term
始终是下部还是带条纹的)是否在标题或描述中:
all_quizzes = Quiz.query.filter_by(is_visible = True)
.filter(
or_(
(func.lower(Quiz.title)).like("%"+term+"%"),
(func.lower(Quiz.description)).like("%"+term+"%")
))
.order_by(desc('date_created')).all()
现在我在想,添加专用的关键字列会更好吗?用户应输入代表其内容的关键字,以便其他人可以找到它。
不利之处在于,用户通常是“愚蠢的”,可能会输入不相关的关键字,或者将不了解此字段的用途。撰写简短的说明可以更好地包含所有相关关键字。
因此,从性能和最佳实践的角度来看,是否值得创建一个关键字字段并将like
用户输入与title
和keywords
进行比较?