1. Requisitos
El artículo que contiene el término de búsqueda en el título o clasificación del artículo (incluso el contenido del artículo) se muestra de acuerdo con el peso de la frecuencia del término de búsqueda.
2. Medio ambiente
Nginx + PHP + Mysql (sistema Centos7).
3. Instalación
1. Dependencias de instalación
yum -y install make gcc gcc-c ++ libtool autoconf automake imake mariadb mariadb-server mariadb-devel libxml2-devel expat-devel
2. Descargue el paquete de software
git clone https: // github.com/wanqianworld/coreseek4.1.git
cd coreseek4.1 #Introduzca el directorio después de descargar
3. Descomprima el código postal
tar -xzf coreseek-4.1-beta.tar.gz
4. Instalar mmseg
CD Coreseek-4.1-beta / mmseg-3.2.14 ./ bootstrap ./configure --prefix = / usr / local / mmseg3 make && make install
5. Instalar coreseek
5.1. Modificar configuración
cd ../csft-4.1
vim configure .ac
将
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
修改为
AM_INIT_AUTOMAKE([-Wall foreign])
5.2. Descargar el software
yum -y parche de instalación
5.3. Parches
parche -p1 </yourpath/sphinx/sphinxexpr.cpp-csft-4.1-beta. parche
Ingrese:
/yourpath/sphinx/coreseek-4.1-beta/csft-4.1/src/sphinxexpr.cpp
5.4. Instalación
sh buildconf. sh ./configure --prefix = / usr / local / coreseek --without-unixodbc --with-mmseg --with-mmseg-includes = / usr / local / mmseg3 / include / mmseg / --with-mmseg-libs = / usr / local / mmseg3 / lib / --with- mysql make && make install
6.1. Prueba de segmentación de palabras chinas
cd ../testpack/ / Usr / local / mmseg3 / bin / MMSEG -d / usr / local / mmseg3 / etc var /test/test.xml # prueba de palabra china
6.2. Crear índice
/ usr / local / coreseek / bin / indexer -c etc / csft.conf --todos
6.3 Prueba de búsqueda
/ usr / local / coreseek / bin / search -c etc / csft.conf Li Yanhong
7.php conecta la esfinge
../csft-4.1/api/libsphinxclient/ cd # entrar en el directorio aclocal libtoolize - fuerza automake --add- missing autoconf cabezales automáticos hacer limpia ./configure --prefix = / usr / local / sphinxclient la marca && make install # compilación cd ../../../../ # directorio de paquete devuelto alquitrán -xzf esfinge 1.3.0.tgz # descompresión yum -y instalar PHP php-devel # instalar php-devel Sphinx CD -1.3.0 # montaje de la phpize ./configure --with-PHP-config = / usr / bin / PHP --with-Sphinx-config = / usr / local / sphinxclient make && make install
7.1. Abra la extensión php-sphinx
vim / etc / php. ini
Añadir al final:
[esfinge]
extension = sphinx.so
8. Prueba
8.1. Agregar datos de prueba
mysql -uroot -p123456 </usr/local/coreseek/etc/example.sql
8.2 Copiar archivo de configuración
cp /usr/local/coreseek/etc/sphinx.conf.dist / usr / local / coreseek / etc / csft. conf cp /home/lee/sphinx/coreseek-4.1-beta/mmseg-3.2.14/data / * / usr / local / mmseg3 / etc /
8.3. Modificar el archivo de configuración
vim /usr/local/coreseek/etc/csft.conf
fuente src1 { type = mysql sql_host = 127.0.0.1 sql_user = root sql_pass = 123456 sql_db = prueba sql_port = 3306 # opcional, el valor predeterminado es 3306 sql_query_pre = SET NAMES utf8 sql_sock = / var / lib / mysql / mysql . calcetín sql_query = \ SELECT id , group_id, UNIX_TIMESTAMP (date_added) AS date_added, title, content \ DE documentos sql_attr_uint = group_id sql_attr_timestamp = date_added sql_ranged_throttle = 0 sql_query_info_pre = SET NAMES utf8 sql_query_info = SELECCIONAR * DE documentos DONDE id = $ id } fuente src1throttled : src1 { sql_ranged_throttle = 100 } prueba de índice1 { fuente = src1 ruta = / usr / local / coreseek / var / data / test1 docinfo = externo mlock = 0 morfología = ninguna min_word_len = 1 html_strip = 0 charset_dictpath = / usr / local / mmseg3 / etc / charset_type = zh_cn.utf-8 } indexador { mem_limit = 128M } buscado { listen = 9312 listen = 9306: mysql41 log = / usr / local / coreseek / var / log / searchd. log query_log = / usr / local / coreseek / var / log / query. log read_timeout = 5 client_timeout = 300 max_children = 30 pid_file = / usr / local / coreseek / var / log / searchd. pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 mva_updates_pool = 1M max_packet_size = 8M max_filters = 256 max_filter_values = 4096 max_batch_queries = 32 trabajadores = hilos # para que RT funcione }
8.4 Copiar archivos binarios
cp / usr / local / coreseek / bin / * / usr / bin /
8.5 Generar índice
indexador --rotate --todos
8.6. Inicio del servicio
buscado
8.7. Detener el servicio
buscado - detener
9. Prueba
Escribe un guión de prueba:
vim test.php
<? php $ sphinx = new SphinxClient (); $ sphinx -> SetServer ("127.0.0.1", 9312 ); $ sphinx -> SetMatchMode (SPH_MATCH_ALL); $ sphinx -> SetLimits (0, 20, 1000 ); $ sphinx -> SetArrayResult ( verdadero ); $ resultado = $ esfinge -> consulta ("uno", "prueba1" ); var_dump ( $ resultado );
Ejecute el script:
php test.php