Как найти токен (фразу, слово), а не последовательность символов в текстовой модели данных 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 означает пробел.

Вернуться на верх