Size: a a a

2021 August 17

ДБ

Денис Бакаев... in symfony
Товарищи, подскажите пожалуйста. Я хочу использовать elasticsearch в качестве хранилища, а не только для поиска. В гугле постоянно предлагается только FOSElasticaBundle. Но он, если я верно понял, только помогает перетащить сущности из обычной базы, с которой работает доктрина, в elastic. Есть ли в симфе какие-то инструменты, которые помогут и сохранять сущности в elastic и доставать их оттуда? Подобно тому, как я это делаю с доктриной и постгресом
источник

BY

Boris Yakushev in symfony
Тебе не нужны никакие бандлы для работы с эластикой.
источник

ДБ

Денис Бакаев... in symfony
Ну прост не очень хочется писать руками все классы для работы с эластиком. По сути, и для работы с обычной базой не нужны никакие бандлы. Но мы же пользуем доктрину
источник

AM

Alex Mikhaylov in symfony
сорри, екскюзе ми
несколько часов бьюсь с задачей

$numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

// условие не срабатывает
$qb->add('where', $qb->expr()->in($qb->expr()->substring('t.name', 0, 1), $numbers));

// так тоже условие не срабатывает
$qb->setParameter('numbers', $numbers);
$qb->andWhere($qb->expr()->substring('t.name', 0, 1) . ' IN (:numbers)');

// так не получается естественно
$qb->andWhere('t.name REGEXP \'^[0-9]+\'');
источник

✨Basic_Instinct✨ in symfony
$qb->andWhere("t.name REGEXP '(".implode("|", $numbers).")'");
источник

AM

Alex Mikhaylov in symfony
[Syntax Error] line 0, col 112: Error: Expected =, <, <=, <>, >, >=, !=, got 'REGEXP'"

в квери билдере такое к сожалению не прокатывает
источник

Ш

Шурик in symfony
источник

✨Basic_Instinct✨ in symfony
тогда так

->add("where",   "t.name REGEXP '(".implode("|", $numbers).")'");
источник

Ш

Шурик in symfony
ты текст ошибки точно прочитала?)
источник

✨Basic_Instinct✨ in symfony
ну да, pугается что неверный символ ))
источник

✨Basic_Instinct✨ in symfony
но это скорее всего именно причина andWhere
источник

Ш

Шурик in symfony
источник

Ш

Шурик in symfony
на последней строчке что происходит?)
источник

AM

Alex Mikhaylov in symfony
да, в корне неверный 😌

но с расширениями наверное не получится
придется писать голый SQL
источник

✨Basic_Instinct✨ in symfony
не знаю, каккая у тя версия, у меня в методе
CompositeExpression делает проверку
источник

✨Basic_Instinct✨ in symfony
источник

AM

Alex Mikhaylov in symfony
не работает доктрина с регулярками без расширений
источник

Ш

Шурик in symfony
исключение бросается не в момент добавления новых условий
оно бросается потом, когда в квери уже всего накидано и доктрина начинает из этого объекта строить sql, основываясь на наборе функций-типов и всего такого, что там в ОРМ-билдере собрано
источник

Ш

Шурик in symfony
и вот в этот момент оно понимает, что в REGEX не умеет
источник

✨Basic_Instinct✨ in symfony
ну тогда придется видимо массив преобразовывать в  or name like
источник