Поиск sphinx'ом по статическим страницам.

Всем привет.


Хотел добавить поиск по стат. страницам, но задача оказалась сложнее чем я думал (в связи с малым опытом в ковырянии LS)

Ситуация примерно такая

— Конфиг sphinx настроен на индексацию статических страниц, помимо топиков и комментариев.
— В /classes/actions/ActionSearch.class.php

добавлен эвент

$this->AddEvent('pages','EventPages');


Функция для обработки


function EventPages(){
		
		$aReq = $this->PrepareRequest();
		$aRes = $this->PrepareResults($aReq, 10);
		if(FALSE === $aRes) {
			$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
			return Router::Action('error');
		}
		/**
		 * Если поиск дал результаты
		 */
		if($this->bIsResults){
			/**
			 * Получаем топик-объекты по списку идентификаторов
			 */
			$aPage = $this->Page_GetPages(array_keys($this->aSphinxRes['matches']));			
			/**
			 *  Делаем сниппеты 
			 */
			foreach($aPage AS $oPage){
				$oPage->setText($this->Sphinx_GetSnippet(
					$oPage->getText(), 
					'pages', 
					$aReq['q'], 
					'<span class="searched-item">', 
					'</span>'
				));
			}						
			/**
			 *  Отправляем данные в шаблон 
			 */
			$this->Viewer_Assign('bIsResults', TRUE);
			$this->Viewer_Assign('aRes', $aRes);
			$this->Viewer_Assign('aPage', $aPage);
		}
		
	}



Текущая ошибка это
$aPage = $this->Page_GetPages(array_keys($this->aSphinxRes['matches']));

На сколько я понимаю, мне осталось грамотно вытянуть контент страницы, чтобы подсветить совпадения, после чего резалт можно будет вывести

В шаблоны внес изменения, поиск показывает, что есть результаты и по стат. страницам



осталось грамотно зацепить контент, для результатов поиска. Застрял, т.к. опыт с внутренним устройством LS очень мал.
И, наверное, $oPage->setText подрезать для вывода.

Буду очень благодарен за помощь :)

6 комментариев

avatar
Удалось ли решить данную проблему? Мне самому по зарез нужно организовать поиск по статическим страницам
avatar
Кто нибудь хорошо разбирается в sphinx? У меня поиск работает, но только по топикам и комментариям. Как настроить чтобы искал по статическим страницам и по людям?
avatar
я нормально разбираюсь. но плагин написать руки не доходят :(
avatar
github.com/CodeToyz/lsplugin-sphinx

Вот вроде начал делать потихоньку
avatar
пока сделал только поиск юзеров. слегка кривовато. надо определиться поиск нужен по каким параметрам и нужно ли управление поиском
avatar
и пожалуйста, добавляйте пожелания, предложения в issue на гитхабе. так будет легче разрабатывать, чем сейчас :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.