我在我的Django网站上实现了一个简单的类似搜索,目前我使用的是以下代码:
from django.db.models import Q
posts = Post.objects.filter(Q(title__icontains=query)|Q(content__icontains=query))
在哪里?
query
LIKE
SQL语句,工作正常。现在,我还想将搜索查询拆分为词或词:
words = query.split(' ')
所以
words
现在包含一个单词列表,我想实现一个类似于:
SELECT ... FROM foo WHERE `title` ILIKE '%word1%' OR `title` ILIKE '%word2%'
OR `content` ILIKE '%word1%' OR `content` ILIKE '%word2%'
如果有两个以上的单词,我希望语句按每个单词列出所有条目。
有什么想法吗?谢谢!