Поиск на нужный текст не срабатывает
Как можно решить данный вопрос? Заранее благодарен за предложения решений 😊
// любое слово if ($this->look == 'anyword'){ foreach($words as $w){ $this->against .= $w.'* '; $this->words .= $w.' '; } else { $this->against .= $stemmer->stem_word($w).'* '; $this->words .= $stemmer->stem_word($w).' '; } } } } // все слова if ($this->look == 'allwords'){ $this->against = '>\"'.$this->query.'\" '; $this->against .= '<('; foreach($words as $w){ $this->against .= '+'.$w.'* '; $this->words .= $w.' '; } else { $this->against .= '+'.$stemmer->stem_word($w).'* '; $this->words .= $stemmer->stem_word($w).' '; } } } $this->against .= ')'; }
Другой вопрос — почему у меня это не работает. Я изначально менял уже значения в модель(только на 2 и 3, а не 1 и 2). Сейчас и фронтед исправил как написали, а потом уже и скопировал весь код. Ни какого эффекта.
Это второй скрин после чистой установки системы instantcms.ru/get/1.10.4.
Отложите до завтра, и все будет правильно!Другой вопрос — почему у меня это не работает
В шаблоне temlates/*/modules/mod_search.tpl, установите атрибут selected="selected"но по умолчанию ищет все слова, а не фразу целиком надо заменить так, чтобы по умолчанию искалась фраза целиком, а не свопадения по всем словам
на значении опции phrase
<select name="look" style="width:100px" onchange="$('#search_form').submit(); "> <option value="phrase" selected="selected" >{$LANG.PHRASE}</option> <option value="allwords" >{$LANG.ALL_WORDS}</option> <option value="anyword" >{$LANG.ANY_WORD}</option> <option value="phrase" selected="selected" >{$LANG.PHRASE}</option> </select>
также не всегда устраивает встроенный поиск, поэтому использую поиск по сайту через яшу/гошу
Часто даже крупные сайты используют такое решение (например site.yandex.ru)
Это подойдет если страницы вашего встроенного поиска не участвуют в выдаче!)
А если с сайтом все в порядке и он живой, то минут через 20 новый материал уже в поиске по сайту участвует.через яшу/гошу
Быстро робот, отдает результаты сразу в персональный поиск.
создал страницу html, в нее исходный код всей страницы сайта из браузера, лишнее удалил, в нужное место результаты яндекса во фрейме
а то родной поиск мог и 0 результатов показать
Ваши документы могут не участвовать в основном индексе и выдаче, но в персональном поиске по сайту они будут.
И будут показаны при поиске на вашем сайте.
Создайте персональные поиски в яндексе и гуле из панели управления и под своим логином и подтвержденными сайтами, проверьте…
Эти ограничения не связаны с движком ICMS или сценарием php.Но вот в чем проблема: поиск "от" замечательно, а вот к примеру "нпа" или "696" не работает и даже "нп"
Минимальная и максимальная длина слова для индексации определяются innodb_ft_min_token_size и innodb_ft_max_token_size для InnoDB индексы поиска, и ft_min_word_len и ft_max_word_len для MyISAM.
Поэтому полнотекстовый поиск FULLTEXT находит только слова из четырех символов.
Есть рекомендации для поиска по двум-трех-двум символам, но они Вам могут не подойти.
После изменения любого из этих параметров в файле конфигурации MYSQL my.ini, перестройте FULLTEXT индексы, чтобы изменения вступили в силу. Например, сделать поиск трех-символьных слов, поместить следующие строки в файле опций:
[mysqld]
innodb_ft_min_token_size=3
ft_min_word_len=3
Затем перезапустите сервер и восстановить ваши FULLTEXT индексы.
Три цифры в текстах компонета content (поле title) находит
А НПА не получается.если только в поле (content) искомое слово не подстрока нпанпа.
В вашем случае видимо лучше обратиться к поиску с помощью LIKE. Переписать запросы в файлах psearch.php компонентов или одного компонента content,
Или если у Вас основная работа по поиску трех -и более цифр, то тогда стоит в таблице контента создать дополнительное поле, и записывать туда значения номеров документов.И организовать поиск по этому полю.