These are chat archives for LaravelRUS/chat

31st
Aug 2014
slider23
@slider23
Aug 31 2014 05:35
@AlinaSob зашел на твой сайт, увидел портфолио. Ты materinstvo.ru будешь переписывать на Laravel ? :)
berpcor
@berpcor
Aug 31 2014 06:41
По эластику вопрос.
Эту штуку буду использовать.
Сервис-провайдер для оф. библиотеки.
В упрощенном виде эти так нужно пользоваться?

Делаю выборку нужных данных с помощью Eloquent. Потом формирую массив с нужными данными так:

$params = array();
$params['body']  = array('testField' => 'abc');
$params['index'] = 'my_index';
$params['type']  = 'my_type';
$params['id']    = 'my_id';
$ret = $client->index($params);

И... все. Т.е. делаю выборку нужных данных. И циклом для каждой записи составляю подобный массив и добавляю его в эластик?

Штучно.
slider23
@slider23
Aug 31 2014 06:47
вроде да
berpcor
@berpcor
Aug 31 2014 07:00
А добавление товара в магазин как оформлять. В конце обычной процедуры добавления: картинки, данные в БД, ... - нужно сразу включать документ в индекс?
Т.е. на каждую конечную категорию (не категории, в которых содержатся другие категории, а категории в которых содержатся товары) - новый тип. И для каждого товара из этой категории - новый документ с нужными полями?
Alexander Zhuravlev
@SCIF
Aug 31 2014 07:50
@berpcor , на событие апдейт и создания записи, берёшь и вешаешь обсервёр, чтобы индексировал/обновлял элемент
Andrey
@Quiss
Aug 31 2014 08:56
@slider23 спасибо за линк) нашел нужный раздел )) http://materinstvo.ru/sub/second_child/
berpcor
@berpcor
Aug 31 2014 09:48
@SCIF, спасибо. Полезная штука.
Кстати, на эластик на русском нет ни одной полезной инструкции: принципы работы, основные концепции. Чтобы можно было понять что это за зверь такой.
Какая-то парочка тухлых примеров есть и все...
А оригинальная документация очень неплоха.
Это к слову о разных форумах и коммьюнити.
Эластик был бы хорошим кандидатом.
Хотя... чем меньше людей о нем знает и разбирается в нем, чем меньше информации на русском, тем...
Лучше тем, кто в нем разбирается )
Роман Сохарев
@greabock
Aug 31 2014 09:53
@berpcor тоже сейчас искал инфу по эластик...
berpcor
@berpcor
Aug 31 2014 09:53
Нашел что-то путное?
Роман Сохарев
@greabock
Aug 31 2014 09:54
На русском нету
berpcor
@berpcor
Aug 31 2014 09:54
Ага...
Роман Сохарев
@greabock
Aug 31 2014 09:54
Только как пользоваться
а принципы работы не описаны
berpcor
@berpcor
Aug 31 2014 09:54
Да, урывками какие-то мелочи рассказаны.
Я уже для себя три источника хороших нашел.
На англ.
Роман Сохарев
@greabock
Aug 31 2014 09:55
ну ссылки в студию
там, в принципе, на офф сайте все есть
berpcor
@berpcor
Aug 31 2014 09:55
Установка без сучка и задоринки - https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-on-an-ubuntu-vps
И книга...
Elastic search server, 2-nd edition (PACKT publishing)
Книга и оф. гайд дают две немного отличающиеся точки зрения.
Так проще понимать.
Разные углы зрения.
Но вообще, как и сказал, гайд хорош.
slider23
@slider23
Aug 31 2014 10:21
@SCIF почему-то самую главную ссылку на том сайте фиг найдешь - http://forum.materinstvo.ru/ . У меня там жена зависала одно время.
berpcor
@berpcor
Aug 31 2014 10:44
@Butochnikov, under heavy development смущает...
Эта штука - сервис-провайдер для официального api.
Думаю, что лучше ее...
Alexey
@Butochnikov
Aug 31 2014 10:44
так перед лараконом состряпали )
Brezhnev Ivan
@vanchelo
Aug 31 2014 10:45
можно и через guzzle запросы слать
благо там простой http
составляй ассоциативный массив конверти в json на сервер)
Brezhnev Ivan
@vanchelo
Aug 31 2014 10:51
@Butochnikov а ты ведешь сейчас ларакон онлайн?
berpcor
@berpcor
Aug 31 2014 10:53
@SCIF, А что, если у меня изменилось название атрибута для товара? Как быть в этом случае? Для всех товаров созданы документы в elastic search и в каждом из документов у меня есть, например, поле name. А я хочу, чтобы оно называлось first_name.
@Butochnikov, участвовал в процесса написания? )
Brezhnev Ivan
@vanchelo
Aug 31 2014 11:01
можно переименовать
Alexander Zhuravlev
@SCIF
Aug 31 2014 11:14
В схеме можно определять и динамические поля «dynamic fields» в понятиях солра. Имеют вид типа: «param_*». Дальше, чтобы работали фасеты по вложенным категориям — товару нужно задавать category и categories поля, соотв. основная категория и все родительские категории. categories должен быть multivalued ессно
@slider23 , про какой сайт речь? Что-то я вне контекста
slider23
@slider23
Aug 31 2014 11:19
про materinstvo.ru
Alexander Zhuravlev
@SCIF
Aug 31 2014 11:20
Я не давал ссылок на него :)
Я только с vladmama.ru был «аффелирован»
slider23
@slider23
Aug 31 2014 11:21
упс, я тебя с @Quiss перепутал, не туда посмотрел :)
Alina Soboleva
@AlinaSob
Aug 31 2014 11:23
@slider23 хм, а что на материнстве надо? )
А, уже увидела
да, на laravel переписываю, а что?
slider23
@slider23
Aug 31 2014 11:24
не, просто, здорово :)
Alina Soboleva
@AlinaSob
Aug 31 2014 11:25
:)
slider23
@slider23
Aug 31 2014 11:25
Там основной сайт, мне кажется, в стагнации, все на форуме.
Brezhnev Ivan
@vanchelo
Aug 31 2014 11:25
так форумы ж по словам @berpcor вымерают)))
slider23
@slider23
Aug 31 2014 11:26
Женщины в интернете, ребята - это другой мир совсем.
Роман Сохарев
@greabock
Aug 31 2014 11:26
@vanchelo уже умерли
Alina Soboleva
@AlinaSob
Aug 31 2014 11:26
Не, не в стагнации ) Просто он так выглядит.. Вот сейчас в новой версии будет много интерактивных штуковин
slider23
@slider23
Aug 31 2014 11:26
Там форумы норм и еще долгое время норм будут.
Alina Soboleva
@AlinaSob
Aug 31 2014 11:26
Форум материнства не вымер, там до фига народа
Роман Сохарев
@greabock
Aug 31 2014 11:26
@artdevue отсался вот один - про материнство
slider23
@slider23
Aug 31 2014 11:28
@AlinaSob ipb2 там ? не думаете, кстати, на ipb3 переходить ?
Alina Soboleva
@AlinaSob
Aug 31 2014 11:29
@slider23 да, ipb2, переход на ipb3 будет после запуска новой версии сайта
Не знаю, правда, сколько времени это займет, там куча самописных фич..
slider23
@slider23
Aug 31 2014 11:29
а мне ipb2 больше нравится.
Alina Soboleva
@AlinaSob
Aug 31 2014 11:30
у меня там под ipb2 написан модуль фотоконкурсов )) одна из первых работ ))) эх, как давно это было
slider23
@slider23
Aug 31 2014 11:30
в третьей версии много интересного, но там из форума что-то другое начали делать зачем-то. Плюс верстка крупная.
Alina Soboleva
@AlinaSob
Aug 31 2014 11:31
Верстку все равно переделывать.
хотя б отчасти придется... Может, даже приближать к старой версии хотя б внешне :))))
а то там народ больно консервативный.. когда я сделала новый способ цитирования, на меня все так ругались :))
Роман Сохарев
@greabock
Aug 31 2014 11:33
а XenForo все равно лучше :-P
slider23
@slider23
Aug 31 2014 11:34
новый - это выделение текста и клик по нику ?
Alexey
@Butochnikov
Aug 31 2014 11:35
@vanchelo ларакон уже закончился
вчера
в этот раз я так не вел, как предыдущие 3
моя практика их научила делать их живые блоги )
Alina Soboleva
@AlinaSob
Aug 31 2014 11:37
@slider23 нет, такой способ тоже есть... Но есть еще кнопка "цитата".
Brezhnev Ivan
@vanchelo
Aug 31 2014 11:38
@Butochnikov ))
Alexey
@Butochnikov
Aug 31 2014 11:38
а что?
Alina Soboleva
@AlinaSob
Aug 31 2014 11:38
Сначала при нажатии на нее текст сообщения цитировался полностью. А потом я сделала, что вставлялась только ссылка на сообщение.
Т.к. оверквотинг достал
slider23
@slider23
Aug 31 2014 11:38
а, понятно.
А сейчас материнство на опенсорсной cms или на каком-то самописе ?
Alina Soboleva
@AlinaSob
Aug 31 2014 11:45
На самописной
Alexey
@Butochnikov
Aug 31 2014 11:52
@berpcor нет не участвовал, следил за Laracon )
Vlad Shcherbin
@VladShcherbin
Aug 31 2014 11:54
а будет видео с ларакона?
Alexey
@Butochnikov
Aug 31 2014 11:58
будет, через месяц или чуть более
Vlad Shcherbin
@VladShcherbin
Aug 31 2014 11:58
отлично, спасибо
Alexey
@Butochnikov
Aug 31 2014 11:58
предыдущие смотрел?
Vlad Shcherbin
@VladShcherbin
Aug 31 2014 11:58
ага
Brezhnev Ivan
@vanchelo
Aug 31 2014 12:56
классная библиотека https://github.com/giggsey/libphonenumber-for-php
Alexey
@Butochnikov
Aug 31 2014 13:26
Alexander Zhuravlev
@SCIF
Aug 31 2014 13:44
Вроде доказали свою нужность
LaravelButler

Приветствуем Вас, @MaxPetukhov, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснений отношений между участниками. За нарушение – Бан!

Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, ознакомьтесь с Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Max Petukhov
@MaxPetukhov
Aug 31 2014 13:49
Приветствую! Подскажите с какой стороны лучше подойти когда требуется дать возможность пользователю менять дизайн (свои скины/темплейты) если в бекэнде лара+блейд?
Alexey
@Butochnikov
Aug 31 2014 13:50
спасибо всем, кто ответил
Alexey
@Butochnikov
Aug 31 2014 13:52
@MaxPetukhov привет. может так https://github.com/teepluss/laravel4-theme ?
Max Petukhov
@MaxPetukhov
Aug 31 2014 13:56
пошел читать )
slider23
@slider23
Aug 31 2014 13:56
@MaxPetukhov смотря что имеется в виду под дизайном
точнее, насколько глубоко он свой
Brezhnev Ivan
@vanchelo
Aug 31 2014 13:57
можно замутить чисто через css
slider23
@slider23
Aug 31 2014 13:58
если же html у тем вообще свой, то тут не избежать дублирования каждой вьюхи
можно сделать компромисс - html лейаутов свой особенный, но у внутренних вьюх все одинаковое
тогда в коренной вьюхе-лейауте, которую @extends() внутренние вьюхи, надо на основе Session::get('theme') делать выбор, какой именно html показывать
т.е. сделать switch(){}
и никакой laravel4-theme не нужен
Max Petukhov
@MaxPetukhov
Aug 31 2014 14:05
я еще не определился с концепцией. пытаюсь определить где грань что и пользователь доволен кастомизайией под себя при этом это было для него легко и делалось все через фронт
berpcor
@berpcor
Aug 31 2014 14:06
Опять по поводу эластика вопрос. В интернет-магазине можно почти совсем базу не использовать ведь? Т.е. постраничный вывод всего каталога - эластик, фильтрация - эластик, быстрый поиск - эластик.
slider23
@slider23
Aug 31 2014 14:07
тебе надо так рисовать темы, чтобы внутри <div class='content'> все было одинаково, чтобы внутренние вьюхи все были одинаковые.
berpcor
@berpcor
Aug 31 2014 14:07
Я имею в виду иметь базу надо, все данные добавлять в эластик, но пользоваться только эластиком.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:07
@berpcor , а выводить сам товар на странице товара?
berpcor
@berpcor
Aug 31 2014 14:08
Т.е. карточку?
Запрашивать товар по id из эластика, нет?..
Max Petukhov
@MaxPetukhov
Aug 31 2014 14:09
@slider23 что значит одинаково? берем пример интернет магазин главная - список - карточка
slider23
@slider23
Aug 31 2014 14:09
html должен быть одинаковый
berpcor
@berpcor
Aug 31 2014 14:10
Или другой подход - быстрый поиск, фильтрация. В обоих случаях получаю id записей из эластика и уже по ним вывожу товары.
А вывод каталога - из базы. Там нагрузка небольшая.
Вывод карточки товара - тоже.
Роман Сохарев
@greabock
Aug 31 2014 14:11
@MaxPetukhov Я б хранил что-то в куках и на основе этого отдавал соответствующую верстку
berpcor
@berpcor
Aug 31 2014 14:12
Есть мысли?..
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:12
@berpcor , индексёры вообще не должны хранить данные в себе — это только индекс. То есть хранимыми должны 2-3-5 инт аттрибутов.
slider23
@slider23
Aug 31 2014 14:12
@berpcor я не юзал эластик, но по идее, какая разница, откуда брать данные - из бд или эластика ? попробуй.
berpcor
@berpcor
Aug 31 2014 14:12
Ясно. Т.е. последний вариант...
Есть разница.
Эластик быстрее в некоторых случаях: поиск, фильтрация.
Иначе смысла в эластике бы не было.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:13
Он — не хранилище. Зачем его использовать как хранилище?
berpcor
@berpcor
Aug 31 2014 14:13
Он быстрый...
Хотя...
Индексы там большие.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:13
Мускуль ещё быстрей, если доступ по ключу :)
Ну блин. Периодически нужно перестраивать индекс.
Поменял схему — потерял данные?? Неправильно это
berpcor
@berpcor
Aug 31 2014 14:14
Тогда использовать так, как я указал в последнем варианте... На эластик ложится только сложная часть работы. Фильтруемые атрибуты - туда. Фасетный поиск и быстрый поиск - туда. Вывод карточки товара и товаров в каталоге - из БД.
Max Petukhov
@MaxPetukhov
Aug 31 2014 14:14
@greabock задача не выбирать из предустановленных тем, а дать возможность пользователю самому загрузить нечто что будет являться его личной темой
berpcor
@berpcor
Aug 31 2014 14:14
Так?
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:15
@berpcor , да, идеологически верно. Работает быстро :)
berpcor
@berpcor
Aug 31 2014 14:15
А при фильтрации и быстром поиске забираю только ID - первичный ключ в бд - и по нему осуществляю вывод из БД.
slider23
@slider23
Aug 31 2014 14:15
Кстати, а почему эластик, а не сфинкс ?
berpcor
@berpcor
Aug 31 2014 14:16
Сложный вопрос...
Я очень хотел сфинкс.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:16
Ну иногда имеет смысл ещё некоторые аттрибуты сохранять. КОторые будут идами для каких-то других сущностей. Но нужно учитывать и понимать зачем делаешь, а не тупо делать все иды хранимыми
berpcor
@berpcor
Aug 31 2014 14:16
Но подкупило то, что эластик из коробки дает больше возможностей.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:16
Я хочу попробовать сфинкс.
Какие например??
berpcor
@berpcor
Aug 31 2014 14:16
Пришлось сменить сторону...
Анализ русского языка.
Может ошибаюсь. Просто читал stackoverflow. Есть кое-какие проблемы с этим. Не захотел с ними иметь дело.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:17
ЭЭээээ. У произведённого русскими нет русских словарей??
berpcor
@berpcor
Aug 31 2014 14:17
Api более дружелюбное.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:18
Хз. Сфинкс бинарно совместим с мускуль клиентом, вплоть до того, что к нему можно цепляться напрямую
А ещё автор сфинкса круто пишет статьи. В очень забавном стиле
berpcor
@berpcor
Aug 31 2014 14:18
И еще момент. Фасетный поиск. У сфинкса есть один единственный пример. Другого в интернете не нашел.
На ajax'е. И мне не показалось это слишком простым.
А в эластике, насколько я понимаю, просто указываю нужные атрибуты в url и все.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:19
Чего-то ты странные вещи говоришь.
@berpcor , ты точно про это говоришь? http://sphinxsearch.com/
berpcor
@berpcor
Aug 31 2014 14:20
Да.
Из закладок.
Вот таким мелочей понацеплял в интернете и посмотрел на эластик.
slider23
@slider23
Aug 31 2014 14:21
У эластика есть преимущество - он вроде, кластер может делать ? А сфинкс на одном серваке только.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:21
Эээээ. 3.5 года прошло
Как на одном??
  • Высокая масштабируемость (крупнейший известный кластер индексирует до 3 000 000 000 документов и поддерживает более 50 миллионов запросов в день);
  • Поддержка распределенного поиска;
berpcor
@berpcor
Aug 31 2014 14:22
Добавление данных в сфинкс - нужно формировать запросы, с помощью которых сфинкс будет собирать данные.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:22
Мне нравится, что он плюсовый, а не явовский.
berpcor
@berpcor
Aug 31 2014 14:22
У эластика json.
Можно использовать более простые запросы Laravel.
Может я опять что-то путаю.
Одним словом - это субъективное.
Показалось, что поиск на elastic я быстрее заведу.
При первом приближении - не очень просто.
В документации прямо про создание сей штуки не сказано.
Надо качать исходники, ковырять.
Для эластика информации побольше.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:26
Какой штуки? Что в примере смущает? Там ведь вообще нет исходников?
Эти исходники.
Штука = пример ajax фасетного поиска как по ссылке.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:29
$stmt = $ln_sph->prepare("SELECT * FROM $indexes WHERE MATCH(:match) $where  LIMIT $start,$offset ");
…
$sql[] = "SELECT *,GROUPBY() as selected,COUNT(*) as cnt FROM $indexes WHERE MATCH(:match) $where  GROUP BY categories ORDER BY cnt DESC LIMIT 0,10";
$sql[] = "SELECT *,GROUPBY() as selected,COUNT(*) as cnt FROM $indexes WHERE MATCH(:match) $where  GROUP BY brand_id ORDER BY cnt DESC LIMIT 0,10";
Чувак использовал мускульный апи.
berpcor
@berpcor
Aug 31 2014 14:30
Не захотелось иметь дело с чистым SQL.
В случае со эластиком можно написать простой запрос для сбора данных и добавлять все в эластик.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:30
Ладно, в общем-то мы полезли в бутылку. Ты решение обосновал, в общем-то этого вполне достаточно.
berpcor
@berpcor
Aug 31 2014 14:30
Может я опять ошибаюсь.
Ну... и еще одно.
Ты, например, @SCIF, имел дело с эластиком, можешь подсказать )
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:32
С эластиком, нет, не имел. Но имею дело с его «родным братом» — solr'ом
berpcor
@berpcor
Aug 31 2014 14:32
Плюс - ты на форуме Ларавел, а значит (скорее всего) использовал его с Ларавел.
А-а-а.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:32
И использую его с симфони ;)
berpcor
@berpcor
Aug 31 2014 14:32
Тогда заканчиваю цепочку умозаключений.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:33

https://github.com/scalia/sphinxsearch

$radius = 1000; //in meters
$latitude = deg2rad(25.99);
$longitude = deg2rad(-80.35);
$result = SphinxSearch::search('my_query', 'index_name')
    ->setSortMode(\Sphinx\SphinxClient::SPH_SORT_EXTENDED, '@geodist ASC')
    ->setFilterFloatRange('@geodist', 0.0, $radius)
    ->setGeoAnchor('lat', 'lng', $latitude, $longitude)
    ->get(true);

Собственно нормальный апи как и у solarium'а симфоневского. Нормальные объекты.

berpcor
@berpcor
Aug 31 2014 14:34
Я правильно понимаю фасетный поиск на эластике?.. Я просто формирую URL со значениями нужных атрибутов, получаю от него ID и вывожу что нужно?
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:34
Надеюсь в близжайшие полгода-год всё-таки придётся подымать на ларе и сфинксе проект
berpcor
@berpcor
Aug 31 2014 14:34
А, еще... Информация, возможно, тоже устаревшая, как и в случае с буквой 'ё', но где-то читал, что с гео-данными эластик работает как с родными.
Есть кое-какие возможности в этом направлении. Какие - не помню.
Просто для себя галочку поставил...
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:35
Уверен, что это фишка люсена, т.к. солр тоже имеет гео-типы. Да и сфинкс, также уверен, что умеет работать с ними. Это необходимое умение
berpcor
@berpcor
Aug 31 2014 14:36
Я говорю, что что-то могло измениться. На даты публикаций редко заглядывал.
А что по поводу фасетного поиска?
Верно понимаю?
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:36
Про фасеты ты что-то странное сказал. Фасет — это тупо ассоциативный массив: критерий — кол-во.
То есть ты говоришь: сформируй мне фасеты по:
  • категории
  • статусу
LaravelButler

Приветствуем Вас, @kmarenov, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснений отношений между участниками. За нарушение – Бан!

Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, ознакомьтесь с Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Alexander Zhuravlev
@SCIF
Aug 31 2014 14:38
В ответ прилетает:
[[1 => 23, 2 => 65, 3 => 34 ], ['published' => 34, 'hidden' => 81…]]
Общий смысл такой. Ессно это я упрощённо, т.к. ты их ещё именовать будешь, ограничивать и т.п. Но суть такая
berpcor
@berpcor
Aug 31 2014 14:39
Не понял в чем странность... Под фасетным поиском понимал следующее - http://technopoint.ru/catalog/80/videokarty?sserv=2&t=115c (слева), без привязки к какой-то специальной терминологии.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:40
Омг. Технопоинт родный :) Думал туда податься программером одно время. А Шарк даже вроде ходил на собеседование
berpcor
@berpcor
Aug 31 2014 14:40
Кстати, хороший магазинчик.
Цены - самые низкие.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:41

формирую URL со значениями нужных атрибутов, получаю от него ID

Получаешь иды/названия возможных вариантов и кол-во каждого из них.

berpcor
@berpcor
Aug 31 2014 14:41
Т.е. по сути - верно понял?
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:42
Ну иды в фасетах вообще никак не отсвечивают. Только кол-во вариантов каждого из возможных значений.
berpcor
@berpcor
Aug 31 2014 14:42
А по какому полю я товары из базы буду выводить?
Если ID товара в БД нет в эластике.
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:43
Ещё раз, фасеты — это только кол-во встретившихся значений какого-то поля. Сейчас опишу сек
berpcor
@berpcor
Aug 31 2014 14:44
localhost:9200/goods/_search?price=1000&memory=2000&something_else_from_faceted_search_menu=some_value
Таким ведь будет запрос для фасетного поиска?
Ага, понял, жду.
К слову о фасетах. Нигде точного определения не встречал...
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:53

http://t2home.ru/annonce/nedvizhimost/prodazha?town=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D0%BE%D0%BA

Есть запрос и есть фасеты. Запрос, в данном случае — это категория товара должна содержать ид категории «продажа недвижимости» и город должен быть «Владивосток». Ты получаешь иды товаров соответствующих этому критерию. Но можно кроме запроса ещё и фасеты указать: допустим простой вариант — просто указываешь фасет «с фото» и «тип продавца» и «состояние». Тогда получишь и иды, что будет ответом на запрос и тут же фасеты (отдельным аттрибутом) которые будут содержать все возможные варианты «с фото» — целый один вариант, т.к. поле бул и отрицательных вариантов нет, следующий фасет — «тип продавца» будет содержать два варианта «компания» и «частное лицо» и таже фигня с состоянием.

filter_query => [1,34,534,345,346]
facets => [
    'photo' => [ 1 => 1306],
    'seller' => [
       'company' => 0,
       'private' => 14718
    ],
    'status' => [
        'used' => 483,
        'new' => 13620
    ],
]
То есть это был один запрос к индексёру и ты получил как фасеты, так и собственно сами иды соотв. запросу.
berpcor
@berpcor
Aug 31 2014 14:56
Мой url верный?
Alexander Zhuravlev
@SCIF
Aug 31 2014 14:58
Я не вижу в нём указания фасетов. Могу завтра привести пример солровского урла.
Я урлами вообще не баловался. Думаю, что что-то вроде должно быть:
localhost:9200/goods/_search?price=1000&memory=2000&facets[status]=status&facets[with_foto]={photo 1}
facets[status] — указание имени возвращаемого фасета, =status — выбрать все возможные значения у поля status и вывести кол-во каждого из них, {photo 1} соотв. выбрать только кол-во записей у кого значение поля photo равно 1 (этот фасет будет возвращён с именем with_foto).
berpcor
@berpcor
Aug 31 2014 15:08
Если не URL'ами, то как?
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:09
урлами, формируешь нужный урл, в ларике обрабатываешь, строишь запрос для эластика
просто не сразу урл в эластик пихать
Alexander Zhuravlev
@SCIF
Aug 31 2014 15:10
Я урлами не составляю, поэтому не знаю как именно там пихается, но суть такая как я записал, что в урле также и фасет суётся.
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:11
а как еще можно составлять
Alexander Zhuravlev
@SCIF
Aug 31 2014 15:11
Ну дык объекты ведь наше всё
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:11
бррр
какие объекты из браузера?
Alexander Zhuravlev
@SCIF
Aug 31 2014 15:11
Работать с сервером — только урлами.
Но ёпт, я-то из фреймвёрка работаю
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:12
ну эластик только урлами понимает
у него же хттп сервак поднимается
Alexander Zhuravlev
@SCIF
Aug 31 2014 15:13
Блин. Ну ты ведь не будешь составлять запрос прямо у себя в приложении?!?
Ты же будешь пользовать какую-то обёртку
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:14
нет, есть обертки, массив ассоциативный составляешь вместо урла
но я то могу и с курлом работать
Alexander Zhuravlev
@SCIF
Aug 31 2014 15:14
Хреновые обёртки. Вон выше приводил пример нормальной обёртки для сфинкса.
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:14
а где там у тебя объекты?
Alexander Zhuravlev
@SCIF
Aug 31 2014 15:14
Вот и я использую обёртку. Да и самого солра, когда дебажу, пользуюсь составителем запросов самого солра. Да, внешнее взаимодействие через урл, но я не парился с этим.
Да, я писал, что соляриум пользую
berpcor
@berpcor
Aug 31 2014 15:25
Т.е. URL'ы непосредственно не формируешь, используешь обертки, которые это делают за тебя?
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:26
так клиенты так и делают https://github.com/elasticsearch/elasticsearch-php
это ж не урл
   $searchParams['index'] = 'my_index';
    $searchParams['type']  = 'my_type';
    $searchParams['body']['query']['match']['testField'] = 'abc';
    $queryResponse = $client->search($searchParams);

    echo $queryResponse['hits']['hits'][0]['_id']; // Outputs 'abc'
berpcor
@berpcor
Aug 31 2014 15:27
Да, очевидно, это не URL...
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:27
конечно и браузера на сервер урл придет, ты его и обрабатывай в подобный формат
berpcor
@berpcor
Aug 31 2014 15:28
конечно и браузера на сервер урл придет - эту часть не совсем понял...
Можешь перефразировать?
berpcor
@berpcor
Aug 31 2014 15:30
И ОТ браузера на сервер URL придет - ты имел в виду, ясно.
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:30
точно, ОТ/ИЗ забыл)
мне вот такой формат нравится
site.com/notebooks/filter/preset=workteaching%2Centertainment;price=-3999;producer=hp-hewlett-packard/
Alexander Zhuravlev
@SCIF
Aug 31 2014 15:32
Всем спокойной ночи, на сегодня кружок по основам индексирования работу окончил
Brezhnev Ivan
@vanchelo
Aug 31 2014 15:32
)) спокойной
Evgeniy
@Ruzarh
Aug 31 2014 16:31
Забавно, ведь есть замечательная команда "explain", почему ее никто не использует? И не надо будет делать уроков по индексированию...
Brezhnev Ivan
@vanchelo
Aug 31 2014 16:45
по индексированию в эластике?
slider23
@slider23
Aug 31 2014 16:45
ммм.. а чем она поможет ?
Brezhnev Ivan
@vanchelo
Aug 31 2014 16:45
я вот тоже не понял
Evgeniy
@Ruzarh
Aug 31 2014 16:52
В эластике возможно нет. Но пологаю что, что то подобное и там есть.
И тут он есть
Brezhnev Ivan
@vanchelo
Aug 31 2014 16:55
и что с ним делать?
как это поможет индексировать?
slider23
@slider23
Aug 31 2014 17:00
даже идеальные с точки зрения explain запросы могут положить сервак
тупо по причине массовости
Tony-mon
@Tony-mon
Aug 31 2014 17:09

Добрый вечер!
Возникла проблема с чекбоксами:
Вывожу чекбоксы цыклом:

 @foreach ($cusines as $cusine)

        <? (isset($placeCusines[$cusine['id']])) ? $cusine['val'] = $placeCusines[$cusine['id']]['val'] : $cusine['val'] = false; ?>
        {{ Debugbar::info($cusine['val']) }}
        {{ Form::checkbox('cusines', $cusine['id'], $cusine['val'], array('id' => $cusine['cusine_id'])) }}
        {{ Form::label('cusine-'.$cusine['id'], $cusine['title'], array()) }}
 @endforeach

Все чкбоксы выводятся Checked хотя {{ Debugbar::info($cusine['val']) }} выводит нужные значения

Роман Сохарев
@greabock
Aug 31 2014 17:12
может это потому, что checked - атрибут, который к value не имеет отношения?
а может я херню сморозил?
-да бро, ты сморозил херню.
-ок, буду иметь ввиду!
Tony-mon
@Tony-mon
Aug 31 2014 17:15
 Generating a checkbox that is checked
 Form::checkbox('name', 'value', true, array('class' => 'name'));
Роман Сохарев
@greabock
Aug 31 2014 17:17
таки что выводит, $cusine['val']?
Tony-mon
@Tony-mon
Aug 31 2014 17:17
true или false
Роман Сохарев
@greabock
Aug 31 2014 17:17
это из базы информация?
Tony-mon
@Tony-mon
Aug 31 2014 17:18
нет своя
Так записывал
@if (isset($place))

    @foreach ($place->cusines  as $cusine)

        {{ $placeCusines[$cusine['id']]['val'] = true }}

    @endforeach

    {{ Debugbar::info($placeCusines) }}

@endif
Роман Сохарев
@greabock
Aug 31 2014 17:20
Ок, я попробую еще раз =) "$place->cusines" Это из базы информация? Или откуда она берется?
Tony-mon
@Tony-mon
Aug 31 2014 17:20
$place->cusines из базы
Роман Сохарев
@greabock
Aug 31 2014 17:21
^ а вот как ты сейчас записал работает?
Tony-mon
@Tony-mon
Aug 31 2014 17:21
нет все чекбоксы как Чекед
Роман Сохарев
@greabock
Aug 31 2014 17:23
Я к тому клоню, что в базе не может (если это mysql) хранится "true" или "false", мускл не держит булы.
slider23
@slider23
Aug 31 2014 17:24
закрывающей скобки нет
Tony-mon
@Tony-mon
Aug 31 2014 17:25
@foreach ($cusines as $cusine)

        <? (isset($placeCusines[$cusine['id']])) ? $cusine['val'] = $placeCusines[$cusine['id']]['val'] : $cusine['val'] = false; ?>
        {{ Debugbar::info($cusine['val']) }} // Здесь выводится верный массив true false 
        // Вся проблема тут начинается!! все Form::checkbox Checked
        {{ Form::checkbox('cusines', $cusine['id'], $cusine['val'], array('id' => $cusine['cusine_id'])) }}
        {{ Form::label('cusine-'.$cusine['id'], $cusine['title'], array()) }}
 @endforeach
berpcor
@berpcor
Aug 31 2014 17:25
Как в магазине организуете хранение однотипных товаров? (разные размеры одной модели обуви, например)
Evgeniy
@Ruzarh
Aug 31 2014 17:25
@slider23 По индексам запросами намного сложнее это сделать)) Но можно все. Просто работа по индексам дает понимание, осознанное понимание как раз работа с explain
А положить можно просто вытаскиванием большого объема данных
berpcor
@berpcor
Aug 31 2014 17:25
И вывод.
Tony-mon
@Tony-mon
Aug 31 2014 17:25
slider23, где нету скобки?
Evgeniy
@Ruzarh
Aug 31 2014 17:26
@slider23 например в табличке 100 000 000 юзеров, но надо каждому из них отправить письма. Вроде задачка тревиальная. Как ее можно сделать?
Роман Сохарев
@greabock
Aug 31 2014 17:26
@berpcor вариантами? =)
Tony-mon
@Tony-mon
Aug 31 2014 17:31
@greabock, Я пере бираю массив и записываю true и false
slider23
@slider23
Aug 31 2014 17:34
@Tony-mon а во-вторых почему ты обращаешься к элементам, полученным из БД как к массиву - $cusine['id'] . Там реально массив ?
Потому что ларавель везде отдает объект по умолчанию.
Tony-mon
@Tony-mon
Aug 31 2014 17:38
@slider23 объект там
berpcor
@berpcor
Aug 31 2014 17:40
@greabock, не понял )
Tony-mon
@Tony-mon
Aug 31 2014 17:43
@slider23 но если обращаться так $cusine->id не помогает
Роман Сохарев
@greabock
Aug 31 2014 17:44
@berpcor ну я приводил тебе таблицу с вариантами товара.
товар один, а варинатов много
slider23
@slider23
Aug 31 2014 17:45
@Tony-mon ну вот, объект, уже круто, прогресс. Смотри по всем остальным переменным. В $placeCusines что, например, есть такой индекс ?
berpcor
@berpcor
Aug 31 2014 17:50
В соединительной таблице имеешь в виду?
Tony-mon
@Tony-mon
Aug 31 2014 17:50

@slider23 $placeCusines это массив который я сам пересобрал

Array ( [26] => Array ( [val] => 1 ) [15] => Array ( [val] => 1 ) [20] => Array ( [val] => 1 ) [2] => Array ( [val] => 1 ) [14] => Array ( [val] => 1 ) [23] => Array ( [val] => 1 ) )

Список кухонь которые есть в текущем заведение

berpcor
@berpcor
Aug 31 2014 17:52
В базе данных эти варианты как хранить?
berpcor
@berpcor
Aug 31 2014 17:58
Кто-нибудь сталкивался? Мои варианты слишком сложные получаются.
Одни и те же ботинки, но с разными размерами хранятся в виде разных товаров?
Или это один товар?
Tony-mon
@Tony-mon
Aug 31 2014 18:20
{{ Form::checkbox('cusines', $cusine['id'], false, array('id' => 'cusine-'.$cusine['id'])) }} - ПОчему-то отображает отмеченный чекбокс
Shappy
@Formcd
Aug 31 2014 18:20
@berpcor У меня получалось тоже сложно... Но гибко достаточно... Я создавал еще один eav :) т.е. в таблицу products были только продукты в общих чертах, а варианты этого продукта были уже в другой таблице variants, где ставилось остаток на складе, конкретная цена, если цена отличалась от предыдущей и т.д. Сложная тоже схема на самом деле...
Shappy
@Formcd
Aug 31 2014 18:26
@Tony-mon по сути не должно... Если только не было \Input::flash(); в контроллере и не заполнялась форма...
Tony-mon
@Tony-mon
Aug 31 2014 18:31

@Formcd незнаю в чем дело так не работает

{{ Form::checkbox('cusines', $cusine['id'], (isset($placeCusines[$cusine['id']]['val'])) ? true : false, array('id' => 'cusine-'.$cusine['id'])) }}

а так работает:

<input type="checkbox" name="cusines" id="cusine-{{$cusine['id']}}" {{(isset($placeCusines[$cusine['id']]['val'])) ? "checked" : ""}} />
Так решилась проблема
Brezhnev Ivan
@vanchelo
Aug 31 2014 19:05
гы ссыль
Роман Сохарев
@greabock
Aug 31 2014 19:06
когда мы говорим "форомь ссылку", мы не это имеем ввиду =)
Brezhnev Ivan
@vanchelo
Aug 31 2014 19:07
а чито?
Роман Сохарев
@greabock
Aug 31 2014 19:07
LaravelButler

Приветствуем Вас, @LarchibaldV, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснений отношений между участниками. За нарушение – Бан!

Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, ознакомьтесь с Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @Mariik, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснений отношений между участниками. За нарушение – Бан!

Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, ознакомьтесь с Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Brezhnev Ivan
@vanchelo
Aug 31 2014 19:26
пополнения в рядах!
LarchibaldV
@LarchibaldV
Aug 31 2014 19:41
Всем здравствуйте, только начал осваивать данный фреймворк, будут вопросы-буду задавать!
Brezhnev Ivan
@vanchelo
Aug 31 2014 19:43
Ждем)
LarchibaldV
@LarchibaldV
Aug 31 2014 19:55
Первый вопрос таков: есть ли у кого-то записи видеоуроков Егора Громыко, а то на YouTube мне пишет что "видео не доступно". Буду благодарен.
Brezhnev Ivan
@vanchelo
Aug 31 2014 19:55
я даже не знаю кто это)
LarchibaldV
@LarchibaldV
Aug 31 2014 19:57
вот его уроки, может у меня по региону ограничение http://allframeworks.ru/post/video-uroki-po-laravel-ot-egora-gromyko.html
Brezhnev Ivan
@vanchelo
Aug 31 2014 19:57
у меня тоже недоступно!
LarchibaldV
@LarchibaldV
Aug 31 2014 19:59
жаль. но вдруг у кого-то завалялось, обязательно поделитесь.)