• Как выбрать кратность из перечисленных кратностей для заданной суммы?

    @NamnaR Автор вопроса
    Роман, спасибо за внимание.
    1. Да, верно
    2. есть некоторое число, которое необходимо собрать из этих кратностей, используя следующие ограничения:
    - если число нельзя собрать из кратностей, то необходимо найти такую сумму кратностей, которая в превышает введенное число, но при этом является наиболее близким к нему

    верно
    - если есть несколько вариантов как собрать из кратностей нужное число, то выбирается вариант, содержащий наименьшее число кратностей (или наименьшие номиналы кратностей или еще какое то другое условие)
    верно, но меня это условие не волнует.

    Короче , ситуация следующая
    Есть магазин-инет, открываем карточку товара.
    По данному артикулу этого товара мы продаем коробки :
    а)в упаковке -20шт, -кратность 20 (кол-во коробок=4)
    б)в упаковке -50шт,-кратность 50 (кол-во коробок=2)
    в)в упаковке -90шт.-кратность 90 (кол-во коробок=1)
    всего у нас шт-(20*4+50*2+90=270шт)
    в поле ввода количества по умолчанию стоит 20шт(найменьшая кратность), если мы нажмем клавишу вверх( то увеливываем на 20 в поле-инпут станет40)

    если мы поменяем значение в самом поле, то должен стоять алгоритм
    если мы введем 50 или 90, то система ничего не меняет.
    если мы введем 45 то система в поле инпут должна поменять на 50.
    если мы введем 70 , то система должна вывести окно (ты можешь взять 70, но коробки 20 и 50)- ставим галочки
    если мы введем 290 шт- система выведет (коробка 20шт-4, коробка 50шт-2, коробка 90шт -1) + заказ 20шт -ставим галки
    и заказываем в корзину.
  • Как выбрать кратность из перечисленных кратностей для заданной суммы?

    @NamnaR Автор вопроса
    Роман, Спасибо. я пришла к выводу , что Ваш критерий отбора монет верен.
    Задача следующая.
    Дано коробка-30шт - 2упаковки, коробка-70 шт- 3упаковки, коробка 90-1 упаковка, коробка 100- 8 упаковок
    Есть поле инпут, в которое вводит пользователь
    мне нужно, чтобы он смог сделать
    - если пользователь ввел 60, то надо набрать СУММУ кратностей равную 60 (2 коробки по 30)
    - если пользователь ввел 45, то надо набрать СУММУ кратностей равную 70 (1 коробка по 70, потому что в приоритет ставится дать меньшее число монет)
    - если пользователь ввел 155, то надо набрать СУММУ кратностей равную 160 (4 коробки 30 70 30 30, или если числом монет то надо дать 2 коробки 90 и 70)

    Клиент может заказать кол-во товаров превышающее наличие (30*2+70*3+90+8*100=1160). но тогда будет под заказ. Мне главное, чтобы запретить клиенту заказать 5 позиции- можно заказать только 30.
  • Почему не устанавливается сфинкс 3.0.3?

    @NamnaR Автор вопроса
    За конфиг большое спасибо.
    К сожалению, не помогло,
    хоть и ищется... и со стороны сфинкса, и со стороны сайта
    freesmska.ru/kak-ya-lechil-poisk-v-bitrix-versiya-... -тоже не помогло
    модуль обновила до 18.5.0
    сфинкс 2.2.11
  • Почему не устанавливается сфинкс 3.0.3?

    @NamnaR Автор вопроса
    Пума Тайланд, мне это предложение не интересно. Спасибо.
  • Почему не устанавливается сфинкс 3.0.3?

    @NamnaR Автор вопроса
    Пума Тайланд, то есть данные таблицы должны заполняться, но уже со стороны битрикс, например, таблица b_search_params как-то заполняется на стороне битрикс...? Верно ли я поняла?
    Такая проблема у нас существуют еще с тех лет.... Поэтому определить, что поломалось, очень сложно...

    а стемминг вроде сфинкс должен формировать, так как у сфинкса есть морфология (лемматизайер или стеммер)..
    Или лемматизайер и стемминг формируются на стороне битрикса,, и сфинкс здесь не причем?
    Что-то я запуталась, просветите, пож-ста...
  • Почему не устанавливается сфинкс 3.0.3?

    @NamnaR Автор вопроса
    Откуда такая информация, что битрикс не работает с 3 версией...
    Подскажите, пож-ста, а стемминг на основании чего тогда формируется?
    Действительно , гляжу /modules/sphinxsearch/tools/sphinx.php нет никакого упоминания про эти таблицы...
    Но b_search_content_text не заполняется, несмотря на то, что в таблице b_iblock_element заполнено поле "SEARCHABLE_CONTENT", что очень странно...
    А почему тогда, у других людей формируются данные таблички, а у меня нет?
    Или они сначала сформировали эти таблички с помощью "Полнотекстовый поиск с помощью"=битрикс, потом модуль поиск не удалили, и начали с имеющими данными запускать "Полнотекстовый поиск с помощью"=сфинкс?
    Подскажите, пож-ста.
  • Почему не устанавливается сфинкс 3.0.3?

    @NamnaR Автор вопроса
    спасибо за ответ большое,
    1.а таблицы у вас заполняются?
    2.b_search_content_stem, b_search_stem, b_search_content_text ?
    3.Если да, подскажите, пож-ста, то какой у вас конфиг, и версия модуля поиска?
    4.и у вас идет поиск в компоненте seach.title побуквенно, как в яндексе?
  • Почему не устанавливается сфинкс 3.0.3?

    @NamnaR Автор вопроса
    both 'sphinxdata' and config file '/home/user/sphinxdata/sphinx.conf' exist;

    искала, отписалась выше не помогло...
    Подскажите, пож-ста, у вас какая последняя нормально установленная версия сфинкса?
  • Почему таблицы b_search_content_stem, b_search_content_text, b_search_custom_rank, b_search_suggest ... пустые?

    @NamnaR Автор вопроса
    Роман Грицук, спасибо , то есть, сфинкс использует только одну таблицу b_search_content?
    просто непонятно, почему тогда метод использует таблицы MakeSQL содержит таблицы b_search_content_text,b_search_content_site , b_search_content_stem

    и почему, в моем случае сфинкс ищет по по полю body?
  • Почему таблицы b_search_content_stem, b_search_content_text, b_search_custom_rank, b_search_suggest ... пустые?

    @NamnaR Автор вопроса
    Роман Грицук, стоит сфинкс.
    конфиг :
    index ind4
    {
        #main settings
            source= ind4
            type = rt
            path = /var/lib/sphinxsearch/data/ind4
            docinfo = extern #
    
    	wordforms = /etc/sphinxsearch/wordforms/wordforms.txt
            exceptions = /etc/sphinxsearch/exceptions/exceptions.txt
        #choose appropriate type of morphology to use
            #morphology = lemmatize_ru_all, lemmatize_en_all, lemmatize_de_all, stem_enru
            morphology = lemmatize_ru_all, lemmatize_en_all
            #morphology = stem_enru, soundex
        #these settings are used by bitrix:search.title component
            #prefix_fields =title 
            #infix_fields= 
    
            rt_mem_limit = 512M
            ondisk_attrs = 1
           
            min_prefix_len = 2 #
            #min_word_len = 1 #
            #min_infix_len = 2 #
            min_stemming_len =2 
    
            expand_keywords = 1
            index_exact_words = 1
          
             
        #all fields must be defined exactly as followed
            rt_field = title
            rt_field = body
            rt_attr_uint = module_id
            rt_attr_string = module
            rt_attr_uint = item_id
            rt_attr_string = item
            rt_attr_uint = param1_id
            rt_attr_string = param1
            rt_attr_uint = param2_id
            rt_attr_string = param2
            rt_attr_timestamp = date_change
            rt_attr_timestamp = date_to
            rt_attr_timestamp = date_from
            rt_attr_uint = custom_rank
            rt_attr_multi = tags
            rt_attr_multi = right
            rt_attr_multi = site
            rt_attr_multi = param
        #depends on settings of your site
            # uncomment for single byte character set
           #charset_type = sbcs
           # uncomment for UTF character set
           # charset_type = utf-8
           charset_table = 0..9, A..Z->a..z, x->U+0445, c->U+0441, _, a..z, \
        U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+0435, U+451->U+0435
    	blend_chars = U+002C, U+2010, U+2012, U+2013, U+2014, U+2044, U+002F, U+002D, U+2d, /, U+005C, U+0027
    }
    common{
    	lemmatizer_base	= /etc/sphinxsearch/dicts/
    }
  • Почему таблицы b_search_content_stem, b_search_content_text, b_search_custom_rank, b_search_suggest ... пустые?

    @NamnaR Автор вопроса
    Роман Грицук , спасибо за ответ, дело в том я многократно индексировала ( в течение месяца), но эти таблицы не заполняются, а остальные таблицы заполняются...

    Вот, например, полагаю мне нужна таблица b_search_content_stem или b_search_stem, чтобы поиск шел побуквенно в search.title

    а у меня эти таблицы пустые, кроме остальных таблиц модуля search ( модуль удаляла, устанавливала, переиндексировала -результат нулевой)
    Я экспортировала бд с рабочего сайта.

    Смотрю проверку сайта - тестирование бд- везде стоит графа "успешно"
    Проверка / восстановление таблиц -у каждой таблицы стоит статус "ОК"

    А также инфоблок участвует в поиске...(стоят галки "Индексировать разделы для модуля поиска","Индексировать элементы для модуля поиска")
  • Где прописать SPH_MATCH_EXTENDED2 и SPH_RANK_PROXIMITY_SPH04 в sphinx?

    @NamnaR Автор вопроса
    Пума Тайланд, подскажите, пож-ста, почему у меня нах-ся один из четырех..., по-вашему...., и что надо сделать , чтобы 4 искалось...
  • Где прописать SPH_MATCH_EXTENDED2 и SPH_RANK_PROXIMITY_SPH04 в sphinx?

    @NamnaR Автор вопроса
    Пума Тайланд, и куда мне копать? подскажите, пож-ста?
    я ориентировалась на то, чтобы точный результат должен быть на первом месте
    как, например, чел пишет https://stackoverrun.com/ru/q/2094125, disq.us/p/qeeojj

    Предполагаю, что я разберу запрос на слова в компоненте
    private function GetSphinxKeyword($sQuery)
    {
    	$aRequestString=preg_split('/[\s,-]+/', $sQuery, 5);
    	if ($aRequestString) {
    		foreach ($aRequestString as $sValue)
    		{
    			if (strlen($sValue)>3)
    			{
    				$aKeyword[] .= "(".$sValue." | *".$sValue."*)";
    			}
    		}
    		$sSphinxKeyword = implode(" & ", $aKeyword);
    	}
    	return $sSphinxKeyword;
    }

    затем отправлю в Search(функция битрикса).
    Вы сказали, что это мне вообще не поможет, подскажите, пож-ста, куда мне копать, чтобы поиск был релевантным.
  • Где прописать SPH_MATCH_EXTENDED2 и SPH_RANK_PROXIMITY_SPH04 в sphinx?

    @NamnaR Автор вопроса
    Пума Тайланд,
    сейчас не так, потому что
    в базе данных есть 4 строчки, содержащие "U8000 5x12 3 шт", а ищется одна строка.
  • Где прописать SPH_MATCH_EXTENDED2 и SPH_RANK_PROXIMITY_SPH04 в sphinx?

    @NamnaR Автор вопроса
    Пума Тайланд, может, я тупая, не поняла Вашу мысль, подскажите, пож-ста...
    Как я поняла из документации sphinxsearch.com/docs/current/matching-modes.html
    SphinxAPI still defaults to SPH_MATCH_ALL but that is for compatibility reasons only.

    означает, что SPH_MATCH_ALL задано по умолчанию... что тоже не айс.
    Главное я ищу подключение в папке bitrix
    $sphinx = new SphinxClient() и не нахожу, что очень странно...

    вопрос в том каким образом подключается сфинкс на битриксе...
    вижу класс CSearchSphinx() и метод $search->connect

    по поводу релевантности-меня руководство запутало...
    Хотела добиться еще большей релевантности, чтобы все было на первом месте... более точные результаты.
  • Где прописать SPH_MATCH_EXTENDED2 и SPH_RANK_PROXIMITY_SPH04 в sphinx?

    @NamnaR Автор вопроса
    Пума Тайланд ,а если модуль переписать?
    там только options.php только надо поменять...
    вынесла папку search в local
    все удалила, только options.php и папку lang с options.php оставила...

    Надо разобраться , пишут сейчас
    Call to a member function SetMatchMode() on null (0)
    local/modules/search/options.php:143
    #0: include
    	/bitrix/modules/main/admin/settings.php:58
    #1: require_once(string)
    	/bitrix/admin/settings.php:2


    никак не пойму, что значит...

    Мне нужно, чтобы поиск выдавал релевантно, как тут https://habr.com/post/132118/
    Сам запрос к сфинксу по фразе «масла Castrol 5W40» будет выглядеть так:

    (масло | *масло*) & (Castrol | *Castrol*) & (5W40 | *5W40*)


    Или тупо переписывать наименования классов....(если не удалять все после копипаста битриксовского модуля в папку local) Тоже не айс.