SQL like / ilike专用关键字列VS描述中的搜索

时间:2018-07-06 12:57:49

标签: python sql postgresql performance sqlalchemy

我正在使用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用户输入与titlekeywords进行比较?

0 个答案:

没有答案