sphinx 설정 및 관리
1. sphinx 설정
1. sphinx 프로필 구조 소개
Source 1{
# , IP、 、
# sql_query、 sql_query_pre、 sql_query_range
}
Index 1{
Source= 1
#
}
Indexer{
# Indexer ,
}
Searchd{
# Searchd
}
Source 와 Index 는 여러 개 를 설정 할 수 있 습 니 다.
2. spinx 설정 사례 상세 설명
#
source search_main
{
#
type = mysql
# IP
sql_host = localhost
#
sql_user = root
#
sql_pass = test123
#
sql_db = test
# SQL
sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF
# sph_counter
sql_query_pre = CREATE TABLE IF NOT EXISTS sph_counter \
( counter_id INTEGER PRIMARY KEY NOT NULL,max_doc_id INTEGER NOT NULL)
# id sph_counter
sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(searchid) FROM v9_search
# SQL, ID
sql_query = SELECT searchid,typeid,id,adddate,data FROM v9_search where \
searchid<( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) \
and searchid>=$start AND searchid<=$end
# sql_attr_uint sql_attr_timestamp api ,
sql_attr_uint = typeid
sql_attr_uint = id
sql_attr_timestamp = adddate
#
sql_query_range = SELECT MIN(searchid),MAX(searchid) FROM v9_search
#
sql_range_step = 1000
#
sql_ranged_throttle = 0
# CLI
sql_query_info = SELECT * FROM v9_search WHERE searchid=$id
}
#
source search_main_delta : search_main
{
sql_query_pre = set names utf8
#
# searchid searchid
sql_query = SELECT searchid,typeid,id,adddate,data FROM v9_search where \
searchid>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) \
and searchid>=$start AND searchid<=$end
sql_query_range = SELECT MIN(searchid),MAX(searchid) FROM v9_search where \
searchid>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
}
# index_search_main
index index_search_main
{
#
source = search_main
#
path = /usr/local/coreseek/var/data/index_search_main
# ,extern id
docinfo = extern
# , 0
mlock = 0
# , none
morphology = none
#
min_word_len = 1
# , utf8
charset_type = zh_cn.utf-8
#
charset_dictpath = /usr/local/mmseg3/etc
# 。
stopwords = /usr/local/coreseek/var/data/stopwords.txt
# HTML
html_strip = 0
}
#
index index_search_main_delta : index_search_main
{
source = search_main_delta
path = /usr/local/coreseek/var/data/index_search_main_delta
}
# indexer
indexer
{
#
mem_limit = 512M
}
# searchd
searchd
{
# IP
#listen = 127.0.0.1
#listen = 172.16.88.100:3312
listen = 3312
listen = /var/run/searchd.sock
# log
log = /usr/local/coreseek/var/log/searchd.log
# log
query_log = /usr/local/coreseek/var/log/query.log
#
read_timeout = 5
#
max_children = 300
# searchd pid
pid_file = /usr/local/coreseek/var/log/searchd.pid
#
max_matches = 100000
# seamless , searchd
# , ,
seamless_rotate = 1
#
preopen_indexes = 1
# .old
unlink_old = 1
# MVA ,
mva_updates_pool = 1M
#
max_packet_size = 32M
#
max_filters = 256
#
max_filter_values = 4096
}
2. sphinx 의 관리
1. Sphinx 중국어 단어 라 이브 러 리 생 성 (새 버 전의 중국어 단어 라 이브 러 리 는 / usr / local / mmseg 3 / etc 디 렉 터 리 에 생 성 되 었 습 니 다)
cd /usr/local/mmseg3/etc
/usr/local/mmseg3/bin/mmseg -u thesaurus.txt
mv thesaurus.txt.uni uni.lib
2. Sphinx 중국어 동의어 라 이브 러 리 생 성
# ,
/data/software/sphinx/coreseek-3.2.14/mmseg-3.2.14/script/build_thesaurus.py unigram.txt > thesaurus.txt
/usr/local/mmseg3/bin/mmseg -t thesaurus.txt
thesaurus.lib uni.lib
3. 모든 색인 생 성
/usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/sphinx.conf –all
searchd , —rotate :
/usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/sphinx.conf --all --rotate
4. searchd 데 몬 시작
/usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/sphinx.conf
5. 메 인 색인 을 생 성하 고 셸 스 크 립 트 로 작성 하여 crontab 작업 에 추가 하고 매일 새벽 1 시 에 메 인 색인 을 다시 만 들 도록 설정 합 니 다.
/usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/sphinx.conf --rotate index_search_main
6. 증분 색인 생 성
shell , crontab , 10
7. 증분 색인 과 메 인 색인 의 통합
셸 스 크 립 트 로 작성 하여 계획 작업 에 추가 하고 15 분 에 한 번 씩 달 립 니 다.
/usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/sphinx.conf --merge index_search_main index_search_main_delta --rotate
8. search 명령 을 사용 하여 명령 행 에서 색인 을 검색 합 니 다.
/usr/local/coreseek/bin/search --config /usr/local/coreseek/etc/sphinx.conf
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.