Не нравятся результаты поиска? Попробуйте другой поиск!

поиск для DLE 9.7


     22.01.2013    Общие вопросы    4381

вопрос
Здравствуйте, подскажите, существует ли какой то человеческий поиск для dle, может хак какой то и т. п. Стандартный работает просто ужасно, часто бывает что материал с точным вхождением находится в самом конце. К примеру ввожу "Хорошая статья" и выводится куча ненужных материалов, а материал с названием "Хорошая статья" появляется одним из самых последних.

Ответил: maggotische


Сам нашел ответ на вопрос. Для того что бы поиск корректно искал по заголовкам нужно в файле
engine/modules/search.php
найти строку
if( isset( $_REQUEST['titleonly'] ) ) $titleonly = intval( $_REQUEST['titleonly'] ); else $titleonly = 0;


и заменить ее на
if( isset( $_REQUEST['titleonly'] ) ) $titleonly = intval( $_REQUEST['titleonly'] ); else $titleonly = 3;

Комментарии пользователей (4)

Dymatize
6

111 | 104

Dymatize - 22 января 2013 22:05 - Юзер.


nowheremany
192

1659 | 1292

nowheremany - 22 января 2013 22:06 - Эксперт

В целом я не видел для ДЛЕ хорошего поиска, но в принципе есть наработки по этому поводу.
Если нужен хороший релевантный морфологический поиск, то можете мне написать в асю, однако услуги платные

Благодарность принимаю тут Связь

shmel1985
2

146 | 63

shmel1985 - 22 января 2013 23:29 - Юзер

Вот хороший хак я себе поставил очень доволен., Автор: MSW
Версия DLE: 9.6-9.7

Установка:
1. Файл: /engine/modules/show.full.php
Найти:
$allowed_cats = array();

foreach ($user_group as $value) {
if ($value['allow_cats'] != "all" AND !$value['allow_short'] ) $allowed_cats[] = $db->safesql($value['allow_cats']);
}

if (count($allowed_cats)) {
$allowed_cats = implode(",", $allowed_cats);
$allowed_cats = explode(",", $allowed_cats);
$allowed_cats = array_unique($allowed_cats);
sort($allowed_cats);

if ($config['allow_multi_category']) {

$allowed_cats = "category regexp '[[:<:]](" . implode ( '|', $allowed_cats ) . ")[[:>:]]' AND ";

} else {

$allowed_cats = "category IN ('" . implode ( "','", $allowed_cats ) . "') AND ";

}
} else $allowed_cats="";

Заменить на:
#*** Category Related News * by MSW ***#
$cat_array = array();
foreach($cat_list as $post_cat) {
$cat_array = array_unique( array_merge( $cat_array, explode( '|', get_sub_cats( $cat_info[$post_cat]['parentid'] ) ) ) );
}
if($config['allow_multi_category']) {
$allowed_cats = "category regexp '[[:<:]](". implode( '|', $cat_array ) .")[[:>:]]' AND ";
} else {
$allowed_cats = "category IN ('". implode( ',', $cat_array ) ."') AND ";
}
#*** Category Related News * by MSW ***#

2. Выполнить запрос в MySQL:
UPDATE `dle_post_extras` SET `related_ids` = ""

maggotische
4

55 | 63

maggotische - 23 января 2013 12:26 - Юзер

Как это относится к вопросу?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы