SphinxSearch 설치시 여러게시판을 등록하려면 어떻게 하나요?
위에 팁으로 SphinxSearch 설치를 했습니다.
다만 하나의 게시판만 적용을 하였는데요
여러게시판 예를 들어 게시판 테이블이 ww1,ww2,ww3 ~ ww20
이렇게 20개의 게시판이 있다면 다 적용시키려면 어느 소스를 변경해야하나요?
답변 2개 / 댓글 18개
똑같이 다음 3가지 모두 다 수정(추가)을 해줘야 합니다.
제일먼저 sphinx.conf 파일 열어서 데이터를 색인할 ww1,ww2,ww3 ~ ww20 필요한 만큼 게시판 데이터베이스 정보 및 쿼리 설정을 추가하고, 다음 인텍스 수정을 해주면되지않을까합니다.
1. indexer
: 색인을 수행하는 명령어입니다.
2. searchd
: 검색과 검색결과를 전송해주는 데몬입니다.
3. sphinx.conf
: 스핑크스 설정파일입니다. /etc/sphinx/sphinx.conf 에 위치합니다.
답변에 대한 댓글 15개
만약 다른 게시판에 대한 데이터도 검색하려면게시판에 대한 데이터 쿼리를 예를 들어 다음과 같이 각각 추가해 주셔야 합니다.
source g5_write_test_1
{
type = mysql
sql_host = 127.0.0.1
sql_user = root
sql_pass = root
sql_db = 실제 추가 데이타베이스 이름
sql_port = 3306
sql_query = SELECT wr_id id, 'test_1' bo_table, wr_id, wr_parent, ca_name, wr_subject, wr_content, mb_id, wr_name, wr_ip, wr_is_comment, UNIX_TIMESTAMP(wr_datetime) AS wr_datetime FROM g5_write_test_1 where wr_is_comment=0
sql_attr_string = ca_name
sql_field_string = wr_subject
sql_field_string = wr_content
sql_field_string = bo_table
sql_attr_uint = wr_id
sql_attr_uint = wr_parent
sql_attr_uint = wr_is_comment
sql_attr_timestamp = wr_datetime
}
그리고 inxdex 식별자를 추가 해주면 되겠습니다.
하나씩 다 추가해주는건 아닌듯하네요
source g5_write_ww1
{
type = mysql
sql_host = 127.0.0.1
sql_user = root
sql_pass = aaw
sql_db = gg
sql_port = 3306 # optional, default is 3306
#sql_sock = /tmp/mysql.sock
sql_query = SELECT wr_id id, 'ww1' bo_table, wr_id, wr_parent, ca_name, wr_subject, wr_content, mb_id, wr_name, wr_ip, wr_is_comment, UNIX_TIMESTAMP(wr_datetime) AS wr_datetime FROM g5_write_ww1 where wr_is_comment=0
sql_attr_string = ca_name
sql_field_string = wr_subject
sql_field_string = wr_content
sql_field_string = bo_table
sql_attr_uint = wr_id
sql_attr_uint = wr_parent
sql_attr_uint = wr_is_comment
sql_attr_timestamp = wr_datetime
}
index gg
{
source = g5_write_ww1
path = /var/lib/sphinx/gg
docinfo = extern
#morphology = stem_en
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
ngram_len = 1
min_word_len = 1
#enable_star = 0
#min_prefix_len = 3
min_infix_len = 1
min_prefix_len = 0
ngram_chars = U+4E00..U+9FBB, U+3400..U+4DB5, U+20000..U+2A6D6, U+FA0E, U+FA0F, U+FA11, U+FA13, U+FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27, U+FA28, U+FA29, U+3105..U+312C, U+31A0..U+31B7, U+3041, U+3043, U+3045, U+3047, U+3049, U+304B, U+304D, U+304F, U+3051, U+3053, U+3055, U+3057, U+3059, U+305B, U+305D, U+305F, U+3061, U+3063, U+3066, U+3068, U+306A..U+306F, U+3072, U+3075, U+3078, U+307B, U+307E..U+3083, U+3085, U+3087, U+3089..U+308E, U+3090..U+3093, U+30A1, U+30A3, U+30A5, U+30A7, U+30A9, U+30AD, U+30AF, U+30B3, U+30B5, U+30BB, U+30BD, U+30BF, U+30C1, U+30C3, U+30C4, U+30C6, U+30CA, U+30CB, U+30CD, U+30CE, U+30DE, U+30DF, U+30E1, U+30E2, U+30E3, U+30E5, U+30E7, U+30EE, U+30F0..U+30F3, U+30F5, U+30F6, U+31F0, U+31F1, U+31F2, U+31F3, U+31F4, U+31F5, U+31F6, U+31F7, U+31F8, U+31F9, U+31FA, U+31FB, U+31FC, U+31FD, U+31FE, U+31FF, U+AC00..U+D7A3, U+1100..U+1159, U+1161..U+11A2, U+11A8..U+11F9, U+A000..U+A48C, U+A492..U+A4C6
}
index ww1rt
{
type = rt
rt_mem_limit = 128M
path = /var/lib/sphinx/ww1rt
rt_field = title
rt_field = content
rt_attr_uint = gid
}
indexer
{
mem_limit = 128M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinx/
}
source g5_write_ww2
{
type = mysql
sql_host = 127.0.0.1
sql_user = root
sql_pass = aaw
sql_db = gg
sql_port = 3306 # optional, default is 3306
#sql_sock = /tmp/mysql.sock
sql_query = SELECT wr_id id, 'ww2' bo_table, wr_id, wr_parent, ca_name, wr_subject, wr_content, mb_id, wr_name, wr_ip, wr_is_comment, UNIX_TIMESTAMP(wr_datetime) AS wr_datetime FROM g5_write_ww2 where wr_is_comment=0
sql_attr_string = ca_name
sql_field_string = wr_subject
sql_field_string = wr_content
sql_field_string = bo_table
sql_attr_uint = wr_id
sql_attr_uint = wr_parent
sql_attr_uint = wr_is_comment
sql_attr_timestamp = wr_datetime
}
index gg
{
source = g5_write_ww2
path = /var/lib/sphinx/gg
docinfo = extern
#morphology = stem_en
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
ngram_len = 1
min_word_len = 1
#enable_star = 0
#min_prefix_len = 3
min_infix_len = 1
min_prefix_len = 0
이부분은 실제 제 db를 넣는것이 아닌가요?
그리고
indexer
{
mem_limit = 128M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinx/
}
이부분은 마지막에 한번만 넣으면 되는건가요?
아 그리고 진심으로 감사드립니다.!!!
하지만 하나도 안빨라지는군요... 혹시 시간이 좀 지나야 하는 부분이 있을까요?
Sphinx 검색 서버의 하드웨어 리소스를 확인 해보세요.
메모리, CPU, 디스크 속도등등
일단 sphinx.conf 설정 부분 에서 메모리 할당 크기를 조금 늘려보시구요
indexer
{
mem_limit = 256M
}
설정변경후에는 Sphinx를 다시 시작 필히 하셔야합니다.
수고 하셨습니다.
항상 느림의 미학으로 찬찬 히 확인 또학인 하다보면 다 됩니다. 응원할께요 화이팅!~
혹시 centos7 과 centos6 의 설치 차이가 있을까요?
install sphinx
설치 후 sphinx.conf 파일을 편집하여 검색 인덱스와 소스를 확인하시고 정의 가 않되어있으면 재정의 해 주 셔야 합니다.
설정후에는 재시작하는것 필 해주시구요 또한 서버 재시작시 자동 부팅 되도록 해주시구요
그누보드 소스도 고쳐야 속도가 빨라질겁니다.
해당글 작성자가 그누보드에 수정해야 할 코드는 따로 설명해두진 않았네요.
답변에 대한 댓글 3개
다른곳 답글을 적으신곳에 댓글을 달아놓긴했지만 보실지는 모르겠습니다...
답변을 작성하려면 로그인이 필요합니다.
1. indexer
: 색인을 수행하는 명령어입니다.
2. searchd
: 검색과 검색결과를 전송해주는 데몬입니다.
이 두가지는 컴프파일을 수정한 후에 한번씩 실행해주면 되는것 아니었나요?
/etc/sphinx/sphinx.conf 파일입니다. 여기서 수정을 어떻게 하는지 알고 싶습니다.
source g5_write_test
{
type = mysql
sql_host = 127.0.0.1
sql_user = root
sql_pass = root
sql_db = board
sql_port = 3306 # optional, default is 3306
#sql_sock = /tmp/mysql.sock
sql_query = SELECT wr_id id, 'test' bo_table, wr_id, wr_parent, ca_name, wr_subject, wr_content, mb_id, wr_name, wr_ip, wr_is_comment, UNIX_TIMESTAMP(wr_datetime) AS wr_datetime FROM g5_write_test where wr_is_comment=0
sql_attr_string = ca_name
sql_field_string = wr_subject
sql_field_string = wr_content
sql_field_string = bo_table
sql_attr_uint = wr_id
sql_attr_uint = wr_parent
sql_attr_uint = wr_is_comment
sql_attr_timestamp = wr_datetime
}
index board
{
source = g5_write_test
path = /var/lib/sphinx/board
docinfo = extern
#morphology = stem_en
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
ngram_len = 1
min_word_len = 1
#enable_star = 0
#min_prefix_len = 3
min_infix_len = 1
min_prefix_len = 0
ngram_chars = U+4E00..U+9FBB, U+3400..U+4DB5, U+20000..U+2A6D6, U+FA0E, U+FA0F, U+FA11, U+FA13, U+FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27, U+FA28, U+FA29, U+3105..U+312C, U+31A0..U+31B7, U+3041, U+3043, U+3045, U+3047, U+3049, U+304B, U+304D, U+304F, U+3051, U+3053, U+3055, U+3057, U+3059, U+305B, U+305D, U+305F, U+3061, U+3063, U+3066, U+3068, U+306A..U+306F, U+3072, U+3075, U+3078, U+307B, U+307E..U+3083, U+3085, U+3087, U+3089..U+308E, U+3090..U+3093, U+30A1, U+30A3, U+30A5, U+30A7, U+30A9, U+30AD, U+30AF, U+30B3, U+30B5, U+30BB, U+30BD, U+30BF, U+30C1, U+30C3, U+30C4, U+30C6, U+30CA, U+30CB, U+30CD, U+30CE, U+30DE, U+30DF, U+30E1, U+30E2, U+30E3, U+30E5, U+30E7, U+30EE, U+30F0..U+30F3, U+30F5, U+30F6, U+31F0, U+31F1, U+31F2, U+31F3, U+31F4, U+31F5, U+31F6, U+31F7, U+31F8, U+31F9, U+31FA, U+31FB, U+31FC, U+31FD, U+31FE, U+31FF, U+AC00..U+D7A3, U+1100..U+1159, U+1161..U+11A2, U+11A8..U+11F9, U+A000..U+A48C, U+A492..U+A4C6
}
index testrt
{
type = rt
rt_mem_limit = 128M
path = /var/lib/sphinx/testrt
rt_field = title
rt_field = content
rt_attr_uint = gid
}
indexer
{
mem_limit = 128M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinx/
}