timo-71

Рейтинг
63
Регистрация
19.09.2018
Diman777:
В кратце: это подобие умного фильтра но работает по всему каталогу, а не только в разделах как это обычно бывает у битрикс.
Также есть блок подбора товара на главной странице.

На мой взгляд идеология не верна. Если бы первым параметром была категория товара, то не было бы проблем с

лично мне удобнее когда фильтр находится в категории. Т.е. ты пришел на сайт не просто так, а за каким-то товаром, и зачем его искать среди тысячи галочек

Выбрал категорию и подгрузилиcь чекбоксы и range slider по параметрам этой категории. Ведь у разных товаров разные характеристики. Мощность, Цоколь, Цветовая температура... Не поверю, что у ваттметра есть цоколь, а светильник крутится ибо мощность в кВт x об/мин

foxi:
1) nosql и прочие монги шмонги не будут лучше.

Наверное все таки зависит от того что надо, а в данном случае это не до конца ясно. С учетом того, что

XML или JSON, я сам указываю в каком формате, поддерживаются оба варианта. JSON по идее удобнее

я бы монгу-шмонгу и пр. носкуэл не исключал. Например, каждая категория - отдельная коллекция (таблица в терминах скуэл бд), их, категорий,например, в Я-маркете, если не изменяет память что то между 2000-3000. Порядок цифр примерно ясен, явно меньше 24000 .

A 16 megabyte namespace file can support approximately 24,000 namespaces. Each collection and index is a namespace.

А дальше дело техники

db.fotoapparaty.find( { optzoom: { $gte: 40, $lte: 80 } } );

db.planshety.remove( { addtime : { $lt : new Date(2018, 12, 31) } })

Но, не настаиваю, в каждом конкретном случает могут быть другие аргументы, которые приведут к выбору иного решения.

foxi:
2) просто json можно хранить в текстовом поле и нормально по нему искать при этом, лишнего кода и объема это не добавляет.

И диапазоны? Ну типа "Оптический Zoom от 40 до 80"

Dram:

У меня сейчас при нажатии на кнопку юзер уходит на страничку специалиста на моем же сайте - урл корректный. Но при этом не запрос в базу не срабатывает.

Посмотрите атрибут action формы

Dram:

Но, повторюсь, если урл специалиста сменить на урл страницы на которых расположена кнопка - то при нажатии страница перезагружается и запрос отработает.

и тут посмотрите атрибут action формы, сравните. Вспомните, куда сунули обработчик формы. Вероятно, не на страницу специалиста.

Но, все равно гадание.

Где моя ошибка?

Вариативно.

На серче ошибка в том что:

echo $answer->section_alias

никому ничего не говорит, кроме того что кто-то не проверив во первых объект ли $answer и имеет ли $answer атрибут $answer->section_alias (может выше в скрипте было, но никто этого не увидит) .

Для вас:

не пользуетесь инструментами браузера (например для мозилы) - консоль (ctrl-shift-i, ctrl-shift-k), посмотреть хтмл-код (ctrl-u) и т.д.

тогда вы бы сначала сами поняли, что ваш браузер понимает под, например

<form action="/<?php echo $answer->section_alias; ?>/<?php echo $answer->category_alias; ?>

да и нам бы показали реальный код исполняемый браузером.

В итоге - профит: вероятно сами бы разобрались, ну а если нет, то нам тут понятней бы было.

Может там

<form action="//
:D

А так, навскидку конструкция

<button type="submit" name="answervote" value="<?php echo $answer->id; ?>">сказать спасибо</button>

<input type="hidden" name="answervote" value="<?php echo $answer->id; ?>">

в корне неверна, так как не надо 2 name="answervote" в одной форме.

timo-71, header не было у меня, видать по этому

Точно нет. Это лишь отображение результата, без "Content-type:text/plain" глаз напрягать надо для просмотра print_r или var_dump:D

Поддержка валуе у баттона есть, значит где то в конструкции клиент(хтмл)-сервер(пхп) косяк

Dram:
Три часа убил на разные гугления и эксперименты

Интересно почему не получается

<?php

if( $_POST ){
header('Content-type:text/plain;charset=utf-8');
print_r($_POST);
echo "\n\n====\n";
var_dump($_POST);
} else {
header('Content-type:text/html;charset=utf-8');
?><html>
<body>
<form action="/button.php" method="post">
<button type="submit" name="click_vote" value="454">кнопка</button>
</form>
</body></html>
<?php
}

ответ

Array

(
[click_vote] => 454
)


====
array(1) {
["click_vote"]=>
string(3) "454"
}

Не замечаете, что оговорок много?

suffix:
Но памяти должно быть много чтобы файловый кэш эффективно работал.
suffix:
скорее всего и верны согласно принципу неумножению сущностей

По поводу экспертов Битрикса: выше же писали про предсказуемость мемкеша относительно кеша ФС(у битрикса вроде нет требования или 64гиг оперативы, или до свидания). Да и экспериментальных данных что то не видно, типа вот 100500 раз записали/прочитали на достаточно загруженной машине обоими методами: Ср.время, Макс/Мин, 90%-граница, медиана и т.д.

suffix:
На форумах Битрикса разбирали

Вы частное, к тому же не факт, что абсолютно истинное и для битрикса, пытаетесь выдать за общее. Люди пытаются донести что, типа нюансы, но тщетно:)

Aisamiery,

Нисколько не посягал на святость и скрепность мускула, а только лишь хотел сказать, что любой поиск на базе в 10000 и 300000 отличается. Продемонстрировал поиском по фулл-текст ключу

Ну а если сделать выборку с лимитом в 50 строк, то будет 0.00 sec

в sec*1000 лучше видно

Количество документов никак не влияет на скорость работы

Да ладно, это только если не считать что все что меньше 5 секунд, это не влияет.

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

Array
(
[error] =>
[result_type] => object
[rows_cnt] => 50
[rows] =>
[Affected] => 0
[Inserted] => 0
[Modified] => 0
[Upserted] => 0
[DeletedCount] => 0
[is_cursor] => 1
[timing] => 217.89 ms
[obj_name] => MongoDB\Driver\Cursor
[WriteErrors] => none
[isDead] =>
[Traversable] => 0
[localTime] => MongoDB\BSON\UTCDateTime Object
(
[milliseconds] => 1553621351496
)
)

Array
(
[error] =>
[result_type] => object
[rows_cnt] => 50
[rows] =>
[Affected] => 0
[Inserted] => 0
[Modified] => 0
[Upserted] => 0
[DeletedCount] => 0
[is_cursor] => 1
[timing] => 4.43 ms
[obj_name] => MongoDB\Driver\Cursor
[WriteErrors] => none
[isDead] =>
[Traversable] => 0
[localTime] => MongoDB\BSON\UTCDateTime Object
(
[milliseconds] => 1553622928294
)
)

217 и 5 мс. В 1-й коллекции 382197 записей, во второй 11705.

детали: Снято по 3-му Ф5 в каждом случае. Впс 1гиг, регру.

запрос типа такого

Array
(
[0] => Array
(
[$text] => Array
(
[$search] => вал
[$language] => russian
)

)

[1] => Array
(
[collation] => Array
(
[locale] => ru
)

[projection] => Array
(
[sku] => 1
[name] => 1

Ps: добавлю, еще сильнее влияет в комплексе с ab -n 3000 -c 500 http://127.0.0.1 > abtest.txt

Оффтоп закончил.

Всего: 541