@alex_cube_rus

Возможно ли организовать поиск по вхождению в поле JSONField Django?

Доброго времени суток! Работаю со слабоструктурированными данными. Использую классическую модель EAV. Но нет предела совершенству. Нашел время попробовать заменить EAV на jsonb в postgresql. Заступорился на том, что не соображу, как реализовать поиск по вхождению в строку. А возможно ли? Если да, то как? Подойдет решение на Django или чистом SQL. Чтобы понятнее было, пример: есть модель

class SomeModel(models.Model):
    data = JSONField()

В поле data сохранен json (2 строки в таблице базы данных):
{"name": "Michael", "friend_name": "Sara"}
{"name": "Miranda", "friend_name": "Richard"}

Поиск подразумевает, что при вводе "ar" выдаст обе строки ("ar" in "Sara", "ar" in "Miranda"), "cha" - опять две строки( "cha" in "Michael", "ar" in "Richard"), "ir" - только одна ("ir" in "Miranda"), "asdq" - ни одной. Возможно ли такое реализовать средствавми Django? Возможно ли реализовать средствами SQL?
  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
sim3x
@sim3x
Любое _нормальное_ решение будет ставить shinxsearch и шаманить

Топорное - берем весь дикт и склеиваем в строку с пробелами и по ней ищем лайком
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы