Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spinx+PHP 
:(
    Опции темы
Toti
Дата 4.12.2007, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 23.1.2007

Репутация: нет
Всего: нет



Вот с чем я пытаюсь разобраться: http://www.sphinxsearch.com/

Там есть такой файлик spinxapi.php Может быть я тупой, плохо знаю английский или ещё что-нибудь... Короче говоря: затрудняюсь понять как с помощью php извлечь результаты поиска (содержимое все полей по каждой записи). На форуме на одном прочитал что надо пользоватся консольным поиском и парсить его результаты - не идиотизм ли это? Может кто-нибудь подскажет что-нибудь? Сталкивался с этой программой. Круто было бы если бы у ВАС имелись какие-нибудь исходники. В этом случае даже комментировать ничего не надо ))) Буду признателен за любую помощь!
PM MAIL   Вверх
izOne
Дата 6.12.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 22.8.2003
Где: Украина, Киев

Репутация: 3
Всего: 4



sphinx для поиска, БД - для данных. 
sphinx даёт id документов, из базы по ним тянем все что касается этих id.

Код

<?php
require 'sphinxapi.php';
if($oRequest->isPost){
    $oSphinx = new SphinxClient();
    $oSphinx->SetServer('localhost', 3312);
    $oSphinx->setSortMode(SPH_SORT_RELEVANCE);
    $oSphinx->SetMatchMode(SPH_MATCH_EXTENDED);
    $sSearch = $aResults = false;
    foreach($oRequest->get(null) AS $k => $v){
        switch($k){
            case 'search':
                $sSearch = $v;
            break;
            case 'period':
                if($v > 0){
                    $iTime = time();
                    $oSphinx->->setFilterRange('created', $iTime - $v*86400, $iTime + $v*86400);
                }
            break;
            case 'limit':
                $oSphinx->SetLimits(0, (int)$v);
            break;
        }
    }
    if(null !== $oRequest->nick){
        $sSearch .= ' @nick '.$oRequest->nick;
    }
    if(!empty($sSearch)){
        $aSphinx = $oSphinx->Query($sSearch, 'album');
        // extend results
        if($aSphinx['total'] > 0){
            $aRecords = Component::get('Album')->getByIds(array_keys($aSphinx['matches']));
            $aRecordsById = array();
            foreach($aRecords AS $k => $aRecord){
                $aRecordsById[$aRecord['id']] = $aRecord;
            }
            $aResult = array();
            foreach($aSphinx['matches'] AS $id => $aRecord){
                $aResult[] = $aRecordsById[$id];
            }
        }
    }
}
?>


Это сообщение отредактировал(а) izOne - 6.12.2007, 13:13
--------------------
Успех ждет каждого, но иногда всю жизнь.
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.