Implementación PHP de búsqueda de texto completo por palabra clave Sphinx y segmentación de palabras chinas Instalación y configuración de Coreseek

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

 

Supongo que te gusta

Origin www.cnblogs.com/yuanwanli/p/12683351.html
Recomendado
Clasificación