Индексация полей для поиска msearch2

У компонента msearch2, с помощью которого реализован поиск товаров на сайте есть поле mse2_index_fields, куда указываются поля ресурсов для поиска по ним. В данный момент туда прописаны артикул и опции минишопа:
"pagetitle:1,article:2,content:3,msProductOption.orign_n:4,msProductOption.dop_n:5,msProductOption.analogi:6,description:7,introtext:8,msProductOption.synonym:9"
Но поиск работает только по одной опции:
msProductOption.orign_n
После каждого изменения данного списка полей запускаю обновление индекса: disk.yandex.ru/i/lI7CC2il0PILYw
Но все же поиск работает только по одной опции:
оригинальный номерmsProductOption.orign_n
, а должен работать и по:
дополнительный номер msProductOption.dop_n
и по:
аналоги msProductOption.analogi
.
Что примечательно, при вводе в поисковую строку оригинального номера он отображается в предварительных результатах поиска: disk.yandex.ru/i/zbyCaMK92nOwfA
И при нажатии на кнопку поиска переходит на страницу с результатами, где и отображаются 2 товара.
При вводе дополнительного номера в поисковую строку предварительные результаты так же есть, но при переходе на страницу с подборкой результатов поиска, результатов 0 пишет: disk.yandex.ru/d/W-_fDDE_FcWv4w
Когда вбиваю артикул, даже предварительных результатов не выдает, но сам товар показывается при нажатии кнопки поиска на странице с результатами…
Неразбериха какая то)
Константин
18 сентября 2023, 09:33
modx.pro
462
0

Комментарии: 2

alex87.ru
19 сентября 2023, 21:44
0
Поправьте код на странице результатов поиска, там у вас вызов mfilter2, попробуйте в параметр &filters= прописать указанные выше поля, только в немного другом формате: msoption|name_options и т.д. + можно попробовать прописать параметр &fields (если не казан в него должны тянуться поля из системной настройки mse2_index_fields) и в нем руками прописать поля (мало ли глюк какой-нибудь, не тянется из mse2_index_fields), ну и логи можно включить если не помогло &showLog=`1` возможно там будет что-нибудь интересное)
    Константин
    21 сентября 2023, 12:58
    0
    Пробую, вызов mfilter2 на странице каталога:
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        {$_modx->getChunk('meta')}
    </head>
    <body class="common-home res layout-4">
        <div id="wrapper" class="wrapper-fluid banners-effect-5">
        <!-- Header Container  -->
        <header id="header" class=" typeheader-4">
            {$_modx->getChunk('header')}
        </header>
        <!-- //Header Container  -->
        
       <!-- Main Container  -->
        <div class="main-container container">
            {$_modx->runSnippet('!pdoCrumbs', [
    	'showHome' => '0',
    	'exclude' => '24',
    	'tplWrapper' => '@INLINE <ul class="breadcrumb" itemscope="" itemtype="http://schema.org/BreadcrumbList">{$output}</ul>',
    	'tplHome' => '@INLINE <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><a itemprop="item" title="{ $menutitle }" href="{$link}"><i class="fa fa-home"></i> <span itemprop="name" class="crumb-item">{$menutitle}</span><meta itemprop="position" content="{ $idx }"></a></li>',
    	'tplCurrent' => '@INLINE <li class="mr-2" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><span itemprop="item" class="current"><span itemprop="name">{$menutitle}</span><meta itemprop="position" content="{ $idx }"></span></li>',
    	'tpl' => '@INLINE <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><a itemprop="item" title="{ $menutitle }" href="{$link}"><span itemprop="name" class="crumb-item">{$menutitle}</span><meta itemprop="position" content="{ $idx }"></a></li>',
            ])}
        
                    <!--Middle Part Start-->
                <div id="" class="col-md-12 col-sm-12">
    {set $allpara = $_modx->getChildIds(31,4,['template' => 3])}
    {set $allpara2 = $_modx->getChildIds(29,4,['template' => 3])}
    
    {foreach $allpara2 as $nyam}
      {set $allpara[] = $nyam}
    {/foreach}
    {$_modx->setPlaceholder('noarticle', $allpara)}
    
    {$_modx->runSnippet('!mFilter2', [
    'paginator' => 'pdoPage',
    	'element' => 'msProducts',
    	'class' => 'msProduct',
    	'showEmptyFilters' => 1,
    	'limit' => 10,
    	'tplOuter' => 'mFilter2OuterTpl',
    	'tpl' => 'listProductTpl',
    	'includeTVs' => 'available,marka,model',
    	'includeThumbs' => 'medium',
    	'sortby' => '{ "parent":"ASC","menuindex":"ASC" }',
    	'tplPagePrev' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">«</a></li>',
    	'tplPageNext' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">»</a></li>',
    	'tplPagePrevEmpty' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">«</a></li>',
    	'tplPageNextEmpty' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">»</a></li>',
    	'suggestionsRadio' => 'tv|marka,
            tv|model',
    	'filters' => 'tv|marka,
            tv|model,
            msvendor|description,
            parent:parents',
    	'aliases' => 'msvendor|description==vendor-status,
            tv|marka==marka,
            tv|model==model',
            
            'fields' =>
    		  'msvendor|description==vendor-status,
    		  tv|marka==marka,
    		  tv|model==model,
    		  parent:parents,
    		  msoption|orign_n,
    		  msoption|dop_n,
    		  msoption|analogi,
    		  ms|article',
    		  
    	'ajaxMode' => 'default',
    	'filterOptions' => '{
    			"more_tpl": "<div class=\"text-center\"><button class=\"btn btn-blue btn-rounded btn_more\">Загрузить еще</button></div>"
    	}',
    	
    	'tplFilter.outer.default' => 'filterSelectOuter',
        'tplFilter.row.default' => 'filterSelectRow',
       
        'tplFilter.outer.vendor' => 'filterSelectOuter',
        'tplFilter.row.vendor' => 'filterSelectRow',
        
        'tplFilter.outer.marka' => 'filterSelectOuter',
        'tplFilter.row.marka' => 'filterSelectTvRow',
        
        'tplFilter.outer.model' => 'filterSelectOuter',
        'tplFilter.row.model' => 'filterSelectTvRow',
        
        'tplFilter.outer.resource|parent' => 'filterSelectOuter',
        'tplFilter.row.resource|parent' => 'filterSelectRow',
    	
    ])}
    
    
    {*'tplFilter.outer.default' => 'filterCheckboxOuter',
        'tplFilter.row.default' => 'filterCheckboxRow',*}
    
                </div>
            </div>
            <!--Middle Part End-->
        <!-- //Main Container -->
    
    
       {$_modx->getChunk('footer')}
        <!-- //end Footer Container -->
        </div>
    <!-- End Color Scheme
    ============================================ -->
    {$_modx->getChunk('scripts')}
    
    </body>
    </html>
    Вызов mfilter2 на странице поиска:
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        {$_modx->getChunk('meta')}
    </head>
    <body class="common-home res layout-4">
        <div id="wrapper" class="wrapper-fluid banners-effect-5">
        <!-- Header Container  -->
        <header id="header" class=" typeheader-4">
            {$_modx->getChunk('header')}
        </header>
        <!-- //Header Container  -->
        
       <!-- Main Container  -->
        <div class="main-container container">
            {$_modx->runSnippet('!pdoCrumbs', [
            	'showHome' => '1',
            	'exclude' => '3,24',
            	'tplWrapper' => '@INLINE <ul class="breadcrumb" itemscope="" itemtype="http://schema.org/BreadcrumbList">{$output}</ul>',
            	'tplHome' => '@INLINE <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><a itemprop="item" title="{ $menutitle }" href="{$link}"><i class="fa fa-home"></i> <span itemprop="name" class="crumb-item">{$menutitle}</span><meta itemprop="position" content="{ $idx }"></a></li>',
            	'tplCurrent' => '@INLINE <li class="mr-2" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><span itemprop="item" class="current"><span itemprop="name">{$menutitle}</span><meta itemprop="position" content="{ $idx }"></span></li>',
            	'tpl' => '@INLINE <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem"><a itemprop="item" title="{ $menutitle }" href="{$link}"><span itemprop="name" class="crumb-item">{$menutitle}</span><meta itemprop="position" content="{ $idx }"></a></li>',
            ])}
            <div class="row" >
                    <!--Middle Part Start-->
                <div id="" class="col-md-12 col-sm-12">
      
                {$_modx->runSnippet('!mFilter2', [
                	'suggestionsMaxResults' => 10000,
                	'element' => 'msProducts',
                	'class' => 'msProduct',
                	'limit' => '12',
                	'tplOuter' => 'mFilter2OuterTpl',
                	'tpls' => 'listProductTpl',
                    'parents' => '3'
                	'includeTVs' => 'available',
                	'includeThumbs' => 'medium',
                	'sortby' => '{ "parent":"ASC","menuindex":"ASC" }',
                	'ajaxMode' => 'default',
                	'tplPageWrapper' => '@INLINE <ul class="pagination">{$prev}{$pages}{$next}</ul>',
                	'tplPageActive' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
                	'tplPage' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
                	'tplPagePrev' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">«</a></li>',
                	'tplPageNext' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">»</a></li>',
                	'tplPagePrevEmpty' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">«</a></li>',
                	'tplPageNextEmpty' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">»</a></li>',
                    'suggestionsRadio' => 'tv|marka,
                		          tv|model',
                	'filters' => 'tv|marka,
            tv|model,
            msvendor|description,
            parent:parents',
    	'aliases' => 'msvendor|description==vendor-status,
            tv|marka==marka,
            tv|model==model',
            
            'fields' =>
    		  'msvendor|description==vendor-status,
    		  tv|marka==marka,
    		  tv|model==model,
    		  parent:parents,
    		  msoption|orign_n,
    		  msoption|dop_n,
    		  msoption|analogi,
    		  ms|article',
    		  
    		  
         	'tplFilter.outer.default' => 'filterSelectOuter',
        'tplFilter.row.default' => 'filterSelectRow',
       
        'tplFilter.outer.vendor' => 'filterSelectOuter',
        'tplFilter.row.vendor' => 'filterSelectRow',
        
        'tplFilter.outer.marka' => 'filterSelectOuter',
        'tplFilter.row.marka' => 'filterSelectTvRow',
        
        'tplFilter.outer.model' => 'filterSelectOuter',
        'tplFilter.row.model' => 'filterSelectTvRow',
        
        'tplFilter.outer.resource|parent' => 'filterSelectOuter',
        'tplFilter.row.resource|parent' => 'filterSelectRow',
        	
                ])}
                
                </div>
            </div>
            <!--Middle Part End-->
        </div>
        <!-- //Main Container -->
    
    
       {$_modx->getChunk('footer')}
        <!-- //end Footer Container -->
        </div>
    <!-- End Color Scheme
    ============================================ -->
    {$_modx->getChunk('scripts')}
    
    </body>
    </html>
    К примеру, ищет по артикулу правильно — 1 результат, но в выпадающем списке предрезультатов нет: file.modx.pro/files/0/f/8/0f8266f6fe730c404eaada808169dd59.jpg
    Не ищет по дополнительному номеру dop_n, но в предварительных результатах выпадающего списка 2 товара, на странице поиска результатов 0: file.modx.pro/files/4/e/3/4e3be68d9c2f897992bf2630873d4bb5.jpg
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2