Как найти токен (фразу, слово), а не последовательность символов в текстовой модели данных Django
В модели данных Django считайте, что у нас есть текст следующего вида:
I am going to go somewhere.
Если я использую Entity.objects.filter(column__contains="go")
, он также вернет слово going
. Но я хочу, чтобы возвращалось только слово go
.
Есть ли какое-либо решение, кроме использования Full Text Search
?
Вы можете циклически просматривать набор запросов и возвращать записи со словом в строке. Попробуйте сделать что-то вроде этого:
for entry in entries:
if 'go' in entry.column:
return True
else:
return False
После проверки документа Regex для Django (спасибо Joshlsullivan), это решение сработало для меня.
result = Entry.objects.filter(text__regex=rf"(\s){searched}(\s)" )
В моем случае searched
является переменной и изменяется со временем (Это не всегда слово go
, как в моем вопросе). Используя {}
, я смог добавить переменную к строке regex. \s
означает пробел.