Контакты RSS 2.0

Разделы Сайта:

Кубтеле - о компании
Инструменты SEO
FreeBSD
Администрирование
Centos администрирование
Windows администрирование
Программирование для web

Аккаунт

Популярное:

FreeBSD › Установка утилиты sphinx FreeBSD
http://www.sphinxsearch.com/docs/ Устанавливаем утилиту sphinx из коллекции портов /usr/ports/textproc/sphinxsearch
# cd /usr/ports/textproc/sphinxsearch
# make config

При этом у нас должны быть обязательно включены опции
• «mysql», если вы пользуетесь данной СУБД и хотите работать с данными непосредственно из Sphinx
• «iconv» для поддержки разных кодировок
Перед запуском создадим конфигурационный файл, вернее переименуем имеющийся и укажем в нём необходимые параметры для подключения к таблицам БД, в которой следует производить поиск
source adw0rd_wp
{
        # Параметры подключения к БД
        type = mysql
        sql_host = localhost
        sql_user = user
        sql_pass = password
        sql_db = database_name
        sql_port = 3306

        # Установим кодировку для работы с БД
        sql_query_pre = SET NAMES utf8
        sql_query_pre = SET CHARACTER SET utf8

        # Запрос выборки данных для индексации
        sql_query = SELECT ID as post_id, post_title, post_content FROM wp_posts WHERE post_type = 'post'

        # Запрос доп. информации для вывода результата (используется утилитой "search")
        sql_query_info = SELECT * FROM wp_posts WHERE ID = $id

        # Время простоя (sleep) перед посылкой запросов серверу (предназначен для разгрузки сервера БД)
        # Если установите "= 1000", то засыпание будет длится 1 секунду
        sql_ranged_throttle = 0
}

index adw0rd_wp
{
        # Использовать соответствующий source-блок настроек при индексации
        source = adw0rd_wp

        # Путь до файлов индекса
        path = /home/sphinx/data/adw0rd_wp

        # Способ хранения индекса (none, inline, extern)
        # Подробнее http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-docinfo
        docinfo = extern

        # Memory lock (http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-mlock)
        mlock = 0

        # Использование английского и русского стемминга
        morphology = stem_enru

        # Минимальная длина индексируемого слова
        min_word_len = 2

        # Установка используемой кодировки
        charset_type = utf-8

        # Таблица символов (http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-charset-table)
        charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F

        # Минимальная длина инфикса (префикс в том числе)
        min_infix_len = 2

        # Использовать оператор усечения "*" (http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-enable-star)
        enable_star = 1
}

indexer
{
        # Максимальный лимит используемой памяти RAM
        mem_limit = 32M
}

searchd
{
        # Адрес сервера
        address = 127.0.0.1

        # Порт
        port = 3312

        # Лог
        log = /home/sphinx/log/searchd.log

        # Лог запросов
        query_log = /home/sphinx/log/query.log

        # Таймаут на соединение с сервером (в секундах). При истечении времени происходит обрыв
        read_timeout = 5

        # <a style="text-decoration: none; color:inherit" title="" id="95 href=http://www.stroites.ru">Максимальное</a> кол-во потомков от процесса
        max_children = 30

        # Путь до pid-файла
        pid_file = /home/sphinx/log/searchd.pid

        # Максимальное кол-во результатов выдачи
        max_matches = 1000
}

Подробная документация приведена здесь: http://www.sphinxsearch.com/docs/.
Для использования утилиты sphinx в системе FreeBSD вам придётся создать пользователя с одноимённым названием, разместить в каталоге пользователя конфигурационный файл, создать каталоги дата в котором будут храниться файлы данных утилиты sphinx и каталог log в котором необходимо создать файлы логов вот и всё, а теперь проиндексируем нашу БД, для этого введем команду
# indexer --config /home/sphinx/sphinx.conf --all

Далее для обновления текущего индекса используйте «--rotate», он добавит к созданному индексу новые данные, а измененные соответственно изменит
# indexer --config /home/sphinx/sphinx.conf --rotate

Мы можем протестировать работу поискового сервера в консоли, для этого воспльзуемся утилитой
# search --config /home/sphinx/sphinx.conf

искомая комбинация
Далее для автоматического старта поискового сервера на основе утилиты sphinx при старте системы в конфигурационном файле /etc/rc.conf укажем параметр
sphinxsearch_enable=”YES”

Запускаем поисковой сервер
# searchd --config /home/sphinx/sphinx.conf
Для использования Sphinx API в наших скриптах необходимо подключить файл sphinxapi.php, он идет в поставке с дистрибутивом. /usr/ports/textproc/sph
inxsearch/work/sphinx-0.9.8.1/api/sphinxapi.php
Привожу скрипт для работы с проиндексируемыми данными поисковика, то есть для запросов искомых слов и вывода результатов поиска!



Sphinx search for Wordpress



<form method="get">
    <input name="s" size="40" value="" />
    <input type="submit" value="Искать!" />
</form>

2)

{
    // Подключаем sphinx-api
    require_once ("sphinxapi.php");
    
    // Искомая комбинация
    $string = $_GET['s'];

    // Создаем объект клиента для Sphinx API
    $sphinx = new SphinxClient();

    // Подсоединяемся к Sphinx-серверу
    $sphinx->SetServer('localhost', 3312);
    
    // Совпадение по любому слову
    $sphinx->SetMatchMode(SPH_MATCH_ANY);
    
    // Результаты сортировать по релевантности
    $sphinx->SetSortMode(SPH_SORT_RELEVANCE);
    
    // Задаем полям веса (для подсчета релевантности)
    $sphinx->SetFieldWeights(array ('post_title' => 20, 'post_content' => 10));

    // Результат по запросу (* - использование всех индексов)
    $result = $sphinx->Query($string, '*');
    
    // Если есть результаты поиска, то
    if ($result && isset($result['matches']))
    {

        // Соединяемся с БД
        mysql_connect('localhost', 'user', 'password');
        mysql_select_db('adw0rd_wp');

        // Устанавливаем кодировки
        mysql_query('SET NAMES utf8');
        mysql_query('SET CHARACTER SET utf8');
        
        // Получаем массив ID постов блога
        $ids = array_keys($result['matches']);

        // Выводим посты отсортированные по релевантности
        $id_list = implode(',', $ids);
        $sql = '
            SELECT &#96;ID&#96;, &#96;post_title&#96;, &#96;post_content&#96;
                FROM &#96;wp_posts&#96;
                WHERE &#96;ID&#96; IN ('.$id_list.')
                ORDER BY FIELD(&#96;ID&#96;, '.$id_list.')';

        $resource = mysql_query($sql);

        // Выводим результаты поиска
        echo '<ol>';
        while ($result = mysql_fetch_assoc($resource)) {
            echo '<li /><span>[url=http://adw0rd.ru/?p=]'.$result['post_title'].'[/url]</span><div>'.mb_substr(htmlspecialchars($result['post_content']), 0, 400).'</div>';
        }
        echo '</ol>';
    }
}
?&gt;

Будет полезным разместить копию конфигурационного файла sphinx в каталоге программ /usr/local/etc , в дальнейшем это поможет нам упростить его эксплуатацию, итак скопируем sphinx.conf из домашнего каталога /home/sphinx в каталог /usr/local/etc .
Для дальнейшей реиндексации базы данных sphinx нам потребуется останавливать работу sphinx, для этого введем комманду
searchd --config /usr/local/etc/sphinx.conf --stop
далее команда
indexer --config /usr/local/etc/sphinx.conf --all
далее запускаем sphinx
searchd --config /usr/local/etc/sphinx.conf
Соответственно рекомендуем добавить эти три волшебные комманды в крон и дергать их один раз в сутки по расписанию ночью, мне кажется этого будет достаточно.
скачать dle 10.3фильмы бесплатно
Добавил: admin › 13-02-2011, 15:52
› 0 комментария › печатькатегория
Другие новости по теме
  • Настройка сервера под задачи web хостинга на CENTOS 6
  • Описание системы резервного копирования веб сайтов и баз данных mysql в системе FreeBSD
  • Добавление нового инструмента в SEO
  • Настройка web сервера на FreeBSD
  • Установка - Настройка панели управления хостингом syscp

  • Кубтеле 350000, Россия, Краснодарский край, , город Краснодар,улица Айвазовского, д. 94, корп. А
    Продвижение сайтов,Регистрация доменов,Компьютерная системная интеграция
    8(861) 299-02-62, +7(903) 449-666-8