ru:tcms_update_1
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| ru:tcms_update_1 [2015/03/27 17:57] – [Custom Gallery From A List of Images] admin | ru:tcms_update_1 [2022/12/28 12:01] (current) – [Search Log Advanced Queries] admin | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| <thumb num=1-20 search_log=all > | <thumb num=1-20 search_log=all > | ||
| - | search template (< | + | search template (< |
| </ | </ | ||
| Line 107: | Line 107: | ||
| < | < | ||
| < | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| </ | </ | ||
| Line 116: | Line 122: | ||
| num = номер трейдера, | num = номер трейдера, | ||
| - | order = сортировка, | + | order = сортировка, |
| </ | </ | ||
| Line 142: | Line 148: | ||
| Для категории Б (1+2+3*1.5(boost) )/10 = 0.75 | Для категории Б (1+2+3*1.5(boost) )/10 = 0.75 | ||
| + | |||
| + | В данный момент это работат только при использовании magic rotation parameter. | ||
| Line 169: | Line 177: | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ===== Sphinx config ===== | ||
| + | |||
| + | Тк была изменена база немного поменялся конфиг сфинкса | ||
| + | |||
| + | < | ||
| + | |||
| + | sql_query = SELECT gi.gallery_id, | ||
| + | (SELECT group_concat(tag_name) FROM rot_gal2tag g2t \ | ||
| + | LEFT JOIN rot_tags as t on t.tag_id = g2t.tag_id \ | ||
| + | WHERE g2t.gallery_id = gi.gallery_id) as tags, \ | ||
| + | (SELECT group_concat(gss.group_id) FROM rot_gallery_stats1 as gss \ | ||
| + | WHERE gss.gallery_id = gi.gallery_id AND group_id != 0) as categories \ | ||
| + | FROM rot_gallery_info AS gi \ | ||
| + | JOIN rot_gallery_data1 AS gd ON gi.gallery_id = gd.gallery_id \ | ||
| + | JOIN rot_gallery_stats1 AS gs ON gs.gallery_id = gi.gallery_id \ | ||
| + | WHERE gallery_status = ' | ||
| + | and gs.best_thumb = ' | ||
| + | |||
| + | |||
| + | sql_attr_timestamp = date | ||
| + | sql_attr_uint | ||
| + | sql_attr_uint | ||
| + | sql_attr_float | ||
| + | sql_attr_uint | ||
| + | sql_attr_uint = gallery_id | ||
| + | sql_attr_multi = uint categories from field; | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Search Log Advanced Queries ===== | ||
| + | |||
| + | В скрипте давно уже есть фича по выводу последних поисковых фраз | ||
| + | |||
| + | <thumb num=1-10 search_log=all ... | ||
| + | | ||
| + | Она выводит лог последних поисковых запросов на вашем сайте. Но сейчас она стала более продвинутой. Теперь можно искать related запросы к текущей странице. Например, | ||
| + | |||
| + | <thumb num=1-10 search_log=all filter=GET_group_name | ||
| + | | ||
| + | На странице тага можно фильтровать по имени тага | ||
| + | |||
| + | <thumb num=1-10 search_log=all filter=GET_tag | ||
| + | |||
| + | На странице поиска можно фильтровать по поисковому запросу | ||
| + | |||
| + | <thumb num=1-10 search_log=all filter=GET_search | ||
| + | |||
| + | Тут надо напомнить что в параметрах то что начинается с GET_ - это переменные из запроса (из урла). | ||
| + | |||
| + | По умолчанию результаты сортируются по кол-ву поисков по конкретному запросу, | ||
| + | |||
| + | <thumb num=1-10 search_log=all filter=GET_search order=items_found | ||
| + | <thumb num=1-10 search_log=all filter=GET_search order=hits | ||
| + | |||
| + | Таким образом на каждой странице создаются линки на другие страницы и общее кол-во страниц на сайте растет. | ||
| + | |||
| + | Конечно, | ||
| + | | ||
| + | Для примера, | ||
| + | |||
| + | 1. тк запросы были взяты из общих источников оказалось что по части запросов в базе ничего не находит. Таким образом была вероятность получить на странице ссылку на которой было 0 результатов поиска. Что бы решить этот вопрос rotation.php, | ||
| + | |||
| + | php rotation.php check_search_queries=true | ||
| + | |||
| + | 2. когда в базе немного поисковых запросов то Mysql справляется без проблем с ними. Однако когда добавили 2М запросов то поиск по такой таблице стал тяжелым и для индексации решили добавить Sphinx - это сделало не только быстрым поиск, но и сам поиск более продвинутым. Что бы добавить Sphinx надо в конфиг сфинкса добавить | ||
| + | |||
| + | < | ||
| + | |||
| + | source search_queries | ||
| + | { | ||
| + | type = mysql | ||
| + | |||
| + | sql_host = ........ | ||
| + | sql_user = ....... | ||
| + | sql_pass = ........ | ||
| + | sql_db = ...... | ||
| + | sql_port = 3306 # optional, default is 3306 | ||
| + | |||
| + | sql_query_pre = SET NAMES utf8 | ||
| + | |||
| + | sql_query = SELECT sq_id, search_query, | ||
| + | |||
| + | sql_attr_uint | ||
| + | sql_attr_uint | ||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | index search_queries_index | ||
| + | { | ||
| + | source = search_queries | ||
| + | path = / | ||
| + | docinfo = extern | ||
| + | morphology | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | После этого сфинкс сможет проиндексировать имеющиеся у вас запросы. | ||
| + | |||
| + | Что бы SmartCJ смог начать использовать этот индекс надо его указать в настройках ротации Sphinx Search , поле Sphinx Search Log Index = search_queries_index | ||
| + | |||
| + | Все. | ||
| + | |||
| + | |||
| + | ===== Search query limit ===== | ||
| + | |||
| + | На сайте может быть масса вариантов лимитирования поиска, | ||
| + | |||
| + | /? | ||
| + | может превратиться в | ||
| + | /? | ||
| + | или | ||
| + | /? | ||
| + | | ||
| + | и так далее, варианты могут быть разными и комбинированными, | ||
| + | |||
| + | Например, | ||
| + | Добавляем в урл search_query_limit=teen, | ||
| + | |||
| + | при выводе <thumb search_log=all num=1-20> | ||
| + | |||
| + | <thumb search_log=all num=1-20 search_query_limit=teen> | ||
| + | | ||
| + | Можно подставлять & | ||
| + | |||
| + | <thumb search_log=all num=1-20 search_query_limit=GET_your_param> | ||
| + | | ||
| + | **Языковой поиск** | ||
| + | Аналогично можно сделать разделение поиска по языкам что бы выводить на соответствующих языках. Скрипт сам не определяет на каком языке написано конкретное предложение, | ||
| + | |||
| + | |||
| + | domain/? | ||
| + | domain/? | ||
| + | domain/? | ||
| + | domain/? | ||
| + | |||
| + | |||
| + | Таким образом у нас у базе для каждого поиска будет отмечено на каком языке он сделан. Добавлять параметр не составляет труда прямо в темплейте, | ||
| + | |||
| + | В темплейте добавляем | ||
| + | |||
| + | <thumb search_log=all num=1-20 search_query_limit=GET_your_param> | ||
| + | | ||
| + | и открываем страницу как domain/? | ||
| + | |||
| + | test,test1 | ||
| + | |||
| + | |||
| + | тк на них стоит пометка | ||
| + | ===== Subcategories and filter keywords ===== | ||
| + | |||
| + | Небольшая поправка в распределении по субкатегориям (те когад категория является подкатегорией корневой категории, | ||
| + | |||
| + | Вопрос возникает когда надоо импортировать что-то, | ||
| + | |||
| + | Поэтому поправка заключается в том, что если при импорте выделено filter keywords (alt+desc) И (!!!) рут категория, | ||
| + | |||
| + | те для нашего примера по кейворду red она попадает только в субкатегорию cars -> red | ||
ru/tcms_update_1.1427479073.txt.gz · Last modified: (external edit)
