Помощь Как реализовать поиск по тегам?

Тема в разделе "DLE", создана пользователем cocs, 27 окт 2013.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. cocs

    cocs

    Регистр.:
    5 дек 2009
    Сообщения:
    441
    Симпатии:
    115
    ДЛЕ ищет информацию по содержимому статьи, а поиск по тегам он не делает.
    В настройках скрипта изменил поиск из простого на полнотекстовый но не помогло.
    Что надо сделать, что бы ДЛЕ в выдаче результатах поиска, включал новости содержащие поисковую фразу в тегах?
    Версия DLE: 9.8
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Надо переписать код поисковика... Да и идиотизм это.
    Для поиска по тегам есть специальный раздел - теги. Там и полный список тегов, и возможность показать все статьи с тем или иным тегом...
     
  3. cocs

    cocs

    Регистр.:
    5 дек 2009
    Сообщения:
    441
    Симпатии:
    115
    Это скорее эксперимент.
    Дело в том, что у меня 98% контент графический! Сейчас наполняется 5:1 полууникальные картинки к уникальным. Раньше заголовок писался, и к новости добавлялись теги, вот и весь текстовой контент. Теперь вместо заголовка стоят теги! А теги собсно и описывают что изображено на картинке т.е. они более точно подходят чем заголовок. Привиду пример. Есть картинка с изображением как отец ведет сына за руку по лесу. В тегах понятно пишется : Отец, сын, гуляют, природа, лес. А заголовок: Пацанячая дружба.
    Когда приходит трафик с ПС, то в большенстве случаев приходят по заголовку, и этот заголовок как раз не отвечает ожиданиям посетителей, и они часто выходят через секунду, яша это фиксирует по ПФ и понижает в выдаче такие материалы а потом и вовсе с индекса выкидает. А если бы человек пришел по фразе "отец и сыном в лесу", это более был бы релевантный запрос к материалу сайта.
    А теперь поводу поиска по тегам. Бывает такое что человек обращается к форме поиска и ищет с помощью его материалы. А тут такая проблема, что поиск ДЛЕ не берет во внимания теги. И посетитель мало что находит. Поэтому я хотел бы включить в поисковую выдачу теги, ведь другого текста кроме заголовка в материале и нету! :)
     
  4. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    В 1000 раз проще писать описание к картинкам =)

    А так, на уровне бреда, сделать поле, которое будет принимать тег и делать выдачу по тегам. Поиск как он есть работать не будет, скорее всего. Хотя, надо код ковырять...
     
    cocs нравится это.
  5. cocs

    cocs

    Регистр.:
    5 дек 2009
    Сообщения:
    441
    Симпатии:
    115
    Может быть, но не в моем случае. Это будет уже обсуждение не по теме.
    Это не подходит, т.к. уже больше 2к материала на сайте, а я так понимаю для этого нужно будет изменять все материалы.
    Эт не есть гуд:). Наверное придется прикручивать поиск Яндекса...
     
  6. swart2010

    swart2010

    Регистр.:
    12 апр 2009
    Сообщения:
    431
    Симпатии:
    113
    если используется быстрый поиск, engine/ajax/search.php
    найди
    Код:
    $db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
    замени на
    $db->query("SELECT id, short_story, title, date, alt_name, category, tags FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%' OR tags LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
    Для остального краткого и полного поиска, engine/module/search.php
    найди
    Код:
    '0' => "MATCH(title,short_story,full_story,xfields) AGAINST ('{story}'
    замени на
    '0' => "MATCH(title,short_story,full_story,xfields,tags) AGAINST ('{story}'
    
    найди
    '0' => "short_story LIKE '%{story}%' OR full_story LIKE '%{story}%' OR xfields LIKE '%{story}%' OR title LIKE '%{story}%'
    замени на
    '0' => "short_story LIKE '%{story}%' OR full_story LIKE '%{story}%' OR xfields LIKE '%{story}%' OR title LIKE '%{story}%' OR tags LIKE '%{story}%'