Здравствуйте,
делаю сейчас поиск по контенту, который генерируется в моих плагинах. Индексирование в сфинксе сделал, а вот как сделать, чтобы при поиске появлялись нужные мне вкладочки пока не понял.
Подскажите пожалуйста.
UPD Сам разобрался:
1. Нужно расширить ActionSearch:
— Добавить свои типы в sTypesEnabled
— Добавить обработчики вывода результатов
2. В файле шаблона \actions\ActionSearch\results.tpl добавить языковые константы для своих типов
Суть проблемы — LS ищет и находит сфинксом заметки и комментарии из всех блогов, независимо от того имеете вы к ним доступ или нет.
Чинится это просто:
вносим в поисковый индекс id закрытого блога к которому относится топик или комментарий, либо 0 если этот блог не закрытый.
передаём в поиск id текущего пользователя
находим список закрытых блогов в которые имеет доступ текущий пользователь.
используем этот список расширенный нулём (что добавит все не закрытые блоги в результаты поиска для любого пользователя) со стандартной возможностью фильтрации Сфинкса
Дорогие друзья, столкнулся с тем, что оказывается встроенный поиск по личным сообщениям ищет слова только в тексте самих сообщений, при этом в комментариях к личным сообщениям он ни чего не ищет.
Вас устраивает такое положение дел?
Кто как решает эту проблему?
Именно так теперь называется плагин «Поиск по топикам, комментариям и людям (Simple Search and Auto Completer)»
НОВОЕ
исправлена небольшая визуальная неточность в блоке поиска по людям для шаблона девелопер
в конфиге добавлена возможность задавать список типов блогов чтобы производить поиск по топикам, которые созданы другими плагинами и имеют свой тип блога (например, блоги с подразделами от aceblogextender, плагин Компании от gran'а)
добавлены пользовательские словари, которые находятся в папке dictionaries плагина: stopwords.txt нужен для исключения ненужных слов из поиска, wordforms.txt нужен для дополнения поискового запроса синонимами. Формат этих словарей полностью совместим с форматом Сфинкса
добавлена опция показа ссылок поиска в других ПС по сайту если ничего не найдено средствами встроенного поиска (ссылки на Гугл, Яндекс и Бинг)
добавлен OpenSearch — открытая технология, которая позволяет добавлять поиск по сайту как поисковый плагин для браузера.
добавлен новый поиск по описаниям блогов
теперь если пользователь авторизирован, поиск дополнительно проводится в закрытых блогах, к которым у пользователя есть доступ (раньше поиск в закрытых блогах не проводился)
добавлена возможность поиска внутри блога. В форме поиска можно выбрать блог, в котором нужно искать топики. Также на страницах блогов добавлена форма поиска по этому блогу.
добавлен расширенный поиск по тегам с возможностью выбора части тега, например, середины
возможность поиска по тегу в блоге
интегрирован плагин «Tags like full», который позволяет подбирать теги набирая даже их часть (не обязательно начало тега) в автокомплитере
добавлена возможность поиска по избранному пользователя для топиков, комментариев и топиков за тегом
Я ставил Sphinx на Ubuntu 12.04. Использую облачный сервер Selectel, поэтому все операции выполнялись под root.
В Ubuntu SphinxSearch 2.0.4 ставится простой командой
apt-get install sphinxsearch
Правим файл /etc/default/sphinxsearch и ставим START=yes
Создаем файл /etc/sphinxsearch/sphinx.conf
Я изначально взял отсюда: Sphinx. Установка и первичная настройка, и поправил пути, а также заменил deprecated address на listen.
Также оказалось что таблица topic_comment теперь называется comment, поправил это тоже.
## Конфигурационный файл Sphinx-а для индексации Живой улицы
#######################
#
# Описываем индексы
#
#######################
# Источник-родитель для всех остальных источников. Здесь указываются параметры доступа
# к базе данных сайта
source lsParentSource
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = livestreet
sql_port = 3306
# Для ускорения работы прописываем путь до MySQL-го UNIX-сокета (чтобы
# операции с БД происходили не через TCP/IP стек сервера)
sql_sock = /var/run/mysqld/mysqld.sock
mysql_connect_flags = 32 # 32- включение сжатие при обмене данными с БД
# Включам нужную кодировку соединения и выключаем кеш запросов
sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF
}
# Источник топиков
source topicsSource : lsParentSource
{
# запрос на получения данных топиков
sql_query = \
SELECT t_fast.topic_id, t_fast.topic_title, UNIX_TIMESTAMP(t_fast.topic_date_add) as topic_date_add, \
tc.topic_text, t_fast.topic_publish \
FROM prefix_topic as t_fast, prefix_topic_content AS tc \
WHERE t_fast.topic_id=tc.topic_id AND t_fast.topic_id>=$start AND t_fast.topic_id<=$end
# запрос для дробления получения топиков на неколько итераций
sql_query_range = SELECT MIN(topic_id),MAX(topic_id) FROM prefix_topic
# сколько получать объектов за итерацию
sql_range_step = 1000
# Указываем булевый атрибут критерия "топик опубликован". Для возможности указания этого критерия при поиске
sql_attr_bool = topic_publish
# Атрибут даты добавления, типа "время"
sql_attr_timestamp = topic_date_add
# мульти-аттрибут "теги топика"
sql_attr_multi = uint tag from query; SELECT topic_id, topic_tag_id FROM prefix_topic_tag
sql_ranged_throttle = 0
}
# Источник комментариев
source commentsSource : lsParentSource
{
sql_query = \
SELECT comment_id, comment_text, UNIX_TIMESTAMP(comment_date) as comment_date, comment_delete \
FROM prefix_comment \
WHERE comment_id>=$start AND comment_id<=$end
sql_query_range = SELECT MIN(comment_id),MAX(comment_id) FROM prefix_comment
sql_range_step = 5000
sql_attr_bool = comment_delete
sql_attr_timestamp = comment_date
}
#######################
#
# Описываем индексы
#
#######################
index topicsIndex
{
# Источник, который будет хранить данный индекса
source = topicsSource
path = /var/lib/sphinxsearch/data/lstopics
# Тип хранения аттрибутов
docinfo = extern
mlock = 0
# Используемые морфологические движки
morphology = stem_enru, soundex, metaphone
# Кодировака данных из источника
charset_type = utf-8
# Из данных источника HTML-код нужно вырезать
html_strip = 1
}
# Индекс комментариев
index commentsIndex
{
source = commentsSource
path = /var/lib/sphinxsearch/data/lscomments
docinfo = extern
mlock = 0
morphology = stem_enru, soundex, metaphone
charset_type = utf-8
}
#######################
#
# Настройки индексатора
#
#######################
indexer
{
# Лимит памяти, который может использавать демон-индексатор
mem_limit = 32M
}
#######################
#
# Настройка демона-поисковика
#
#######################
searchd
{
# Адрес, на котором будет прослушиваться порт
listen = 127.0.0.1:3312
# Лог-файл демона
log = /var/log/sphinxsearch/searchd.log
# Лог поисковых запросов. Если закомментировать,то логировать поисковые строки не будет
query_log = /var/log/sphinxsearch/query.log
# Время в секундах, которое ждет демон при обмене данными с клиентом. По исчерпании происходит разрыв коннекта
read_timeout = 5
# Максимальное количество одновременно-обрабатываемых запросов. 0 означает дофига, а точнее без ограничения
max_children = 30
# Файл, в который сохраняется PID-процесса при запуске
pid_file = /var/run/sphinxsearch/searchd.pid
}
Правим настройки для соединения с базой
source lsParentSource
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = livestreet
sql_port = 3306
Правим префикс таблиц. В моем случае я заменил все вхождения prefix_ на пустоту. (6 замен)
Индексацию будем делать под пользователем sphinxsearch, для этого надо ему выставить /bin/sh в виде шелла
chsh -s /bin/sh sphinxsearch
Запускаем индексацию из-под юзера sphinxsearch
su sphinxsearch -c 'indexer --all'
Индерксатор не должен выдавать ошибок, и должны появиться файлы индексов в папке /var/lib/sphinxsearch/data/
Запускаем искалку
service sphinxsearch start
Проверяем, что поиск работает. У меня заработал.
Ставим переиндексацию на крон. Для этого редактируем кронтаб для пользователя sphinxsearch
Здравствуйте,
Вопрос к специалистами по сфинксу.
Хочу замутить вот такое:
При запросе site/search/topic?q=23-11-2012 чтоб искались все топики за эту дату
Что можете посоветовать?
Думаю, меня уже узнают благодаря моим топикам раз и два.
В таком случае, не буду лишний раз представляться и скажу лишь по существу — в набирающий обороты современный проект LA-REVUE MAG (by LA-REVUE MEDIA) в настоящее время идёт набор в состав.
Пподскажите как преместить
— логин с менюшкой
— аву
— индикатор новых сообщений
— кнопку создать топик и поиск в sidebar
или хотя бы хоть что-то из этого списка
Вот скрин того что надо переносить sidebar
Что вырезать и куда его втулить, заранее спасибо за коменты
СРОЧНО ищется иллюстратор в команду проекта.
Подробности — в личном общении, писать здесь.
Сразу скажу: в обязанности входит отрисовка элементов дизайна для материалов, коими могут оказаться графические ухищрения любой сложности — от рисованных очков Рэй Бэн до выведенной фигуры человека с пистолетом в руках.