Установка Sphinx

Понадобилось быстренько поднять Sphinx для разработчиков.

В наличии тестовый сервер с opensuse 11.4 x86_64.

Установка

Скачиваем пакет











http://download.opensuse.org/repositories/server:/search/openSUSE_12.3/src/sphinx-2.0.8-1.1.src.rpm










Собираем rpm











rpmbuild –rebuild sphinx-2.0.8-















1.1









.src.rpm




Устанавливаем пакет















cd









 









/









usr









/









src









/









packages









/









RPMS









/









x86_64









/










rpm 









-ihv















 sphinx-2.0.8-















1.1















.x86_64.rpm










Рихтуем конфиг сфинкса /etc/sphinx/sphinx.conf





#






# Minimal Sphinx configuration sample (clean, simple, functional)






#
 






source blog-src






{






        type                  = mysql






 






        sql_host              = example.com












        sql_user              = user












        sql_pass              = passwd












        sql_db                = database






 






        sql_query_pre         = SET NAMES utf8












        sql_query_pre         = SET CHARACTER SET utf8












        sql_query_pre         = SET SESSION query_cache_type=OFF






 






        # Запрос выборки данных для индексации












        sql_query             = SELECT ID as post_id, post_title, post_content FROM wp_posts WHERE post_type = 'post'






 






        sql_query_info        = SELECT * FROM post WHERE post_id=$id












        # Запрос доп. информации для вывода результата (используется утилитой "search")












        sql_query_info        = SELECT * FROM wp_posts WHERE ID = $id






 
}
 
 






index blog-index






{






        source                 = blog-src












        path                   = /var/sphinx/data/blog












        docinfo                = extern






        mlock                  = 0






        morphology             = stem_enru












        min_word_len           = 2












        enable_star            = 1












        index_exact_words      = 1












        #min_prefix_len        = 1












        min_infix_len          = 1












        html_strip             = 1












        expand_keywords        = 1












        charset_type           = utf-8












        charset_table          = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F






}
 
indexer
{






        mem_limit                 = 32M






}
 
searchd
{






        listen                    = 9312












        listen                    = 9306:mysql41






 






        read_timeout              = 5












        max_children              = 30












        max_matches               = 1000












        seamless_rotate           = 1












        preopen_indexes           = 1












        unlink_old                = 1












        workers                   = threads # for RT to work












        pid_file                  = /var/sphinx/log/searchd.pid












        log                       = /var/sphinx/log/searchd.log












        query_log                 = /var/sphinx/log/query.log












        binlog_path               = /var/sphinx/data












        # WARNING: compat_sphinxql_magics=1 is deprecated












        compat_sphinxql_magics = 0






}




Создаем скрипт запуска

cat /etc/init.d/sphinx





















#!/bin/bash
















 
















#---------- Variables ----------
































_SOFT_NAME















=Sphinx
















_PROC_NANE















=searchd
 










case









 









$1









 









in










 
        status









)










                









ps









 aux 









|



















grep









 















$_PROC_NANE















 









|



















grep









 









-v









 









grep









 









>









 









/









dev









/









null
                









if









 









[









 









$?









 









-eq









 









0









 









]










                        









then









 









echo









 









"















$_SOFT_NAME





















 running..."
















                        









else









 









echo









 









"















$_SOFT_NAME





















 not running..."
















                









fi










        









;;










 
        stop









)










                









echo









 















"Shutting down 





















$_SOFT_NAME





















..."
















                









/









usr









/









bin









/









searchd 









--stop










        









;;










 
        start









)










                









echo









 















"Starting up 





















$_SOFT_NAME





















..."
















                









/









usr









/









bin









/









searchd
        









;;










        restart









)










                









echo









 















"Shutting down 





















$_SOFT_NAME





















..."
















                









/









usr









/









bin









/









searchd 









--stop










                









echo









 















"Starting up 





















$_SOFT_NAME





















..."
















                









/









usr









/









bin









/









searchd
 
        









;;










 
        









*



















)










                









echo









 















"Usage: ./sphinx {start|stop|status|restart}"
















                









;;










 
 









esac














Создаем необходимые каталоги















mkdir









 









-p









 









/









var









/









sphinx









/









data 















&&















 









mkdir









 









/









var









/









sphinx









/









log




Запускаем индексирование





server:









/









etc









/









sphinx 















# /usr/bin/indexer --all






















Sphinx 2.0.8-id64-release 















(









r3831









)
















Copyright 















(









c









)









 









2001









-









2012















, Andrew Aksyonoff












Copyright 















(









c









)









 









2008









-









2012















, Sphinx Technologies Inc 















(









http:









//















sphinxsearch.com















)










 






using config 















file









 















'/etc/sphinx/sphinx.conf'















...






indexing index 





















'blog-index'















...






collected 















167









 docs, 









0.3









 MB
sorted 









1.3









 Mhits, 









100.0



















%









 









done










total 









167









 docs, 









308020









 bytes
total 









0.999









 sec, 









308139









 bytes









/









sec, 









167.06









 docs









/









sec
total 









4









 reads, 









0.003









 sec, 









1118.3









 kb









/









call avg, 









0.7









 msec









/









call avg
total 









22









 writes, 









0.009









 sec, 









437.3









 kb









/









call avg, 









0.4









 msec









/









call avg






rotating indices: successfully sent SIGHUP to searchd 















(



















pid









=









3058



















)









.




При перестройке индексов используем





server:









/









etc









/









sphinx 















# /usr/bin/indexer --all --rotate




















Данную команду можно добавить в cron

Для поиска, а заодно и тестирования работоспособности, используем















/









usr









/









bin









/









search 









test










...










1









. 









'test'









: 









34















 documents, 















103









 hits




Ссылки


  1. Sphinx 2.1.1-beta reference manual
  2. Install and Configure Sphinx
  3. How to install .src.rpm packages in openSuse

Похожие статьи:

Оставить комментарий