테스트 사이트 - 개발 중인 베타 버전입니다

SphinxSearch 설치시 여러게시판을 등록하려면 어떻게 하나요? 채택완료

eoqkrrmwj 2년 전 조회 2,433

https://sir.kr/g5_tip/6594

 

위에 팁으로 SphinxSearch 설치를 했습니다.

 

다만 하나의 게시판만 적용을 하였는데요

 

여러게시판 예를 들어 게시판 테이블이 ww1,ww2,ww3 ~ ww20

 

이렇게 20개의 게시판이 있다면 다 적용시키려면 어느 소스를 변경해야하나요?

 

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
웅푸
2년 전

똑같이 다음 3가지 모두 다 수정(추가)을 해줘야 합니다.

제일먼저 sphinx.conf 파일 열어서 데이터를 색인할 ww1,ww2,ww3 ~ ww20 필요한 만큼 게시판 데이터베이스 정보 및 쿼리 설정을 추가하고, 다음 인텍스 수정을 해주면되지않을까합니다.

 

1. indexer 

  : 색인을 수행하는 명령어입니다.

2. searchd

  : 검색과 검색결과를 전송해주는 데몬입니다.

3. sphinx.conf

  : 스핑크스 설정파일입니다. /etc/sphinx/sphinx.conf 에 위치합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 15개

e
eoqkrrmwj
2년 전
/etc/sphinx/sphinx.conf 이 파일 하나만 수정해주면 되지 않나요?

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/
}
웅프
2년 전
네 실제 source g5_write_test 와 데이타베이스 이름이 board 라면 그대로 사용하시면됩니다.

만약 다른 게시판에 대한 데이터도 검색하려면게시판에 대한 데이터 쿼리를 예를 들어 다음과 같이 각각 추가해 주셔야 합니다.

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 식별자를 추가 해주면 되겠습니다.
e
eoqkrrmwj
2년 전
밑에 내용은 더 있지만 실제 이렇게 하면 오류가 나는데요

하나씩 다 추가해주는건 아닌듯하네요

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
웅프
2년 전
index gg 식별자는 중복 사용하시면않됩니다.
웅프
2년 전
그리고
g5_write_ww2 와 gg2 인덱스도 식별자를 설정해야 합니다:
e
eoqkrrmwj
2년 전
sql_db =

이부분은 실제 제 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/
}



이부분은 마지막에 한번만 넣으면 되는건가요?
e
eoqkrrmwj
2년 전
해결되었습니다.

아 그리고 진심으로 감사드립니다.!!!

하지만 하나도 안빨라지는군요... 혹시 시간이 좀 지나야 하는 부분이 있을까요?
웅프
2년 전
네 맞아요 속도가 느리다는건가요?
e
eoqkrrmwj
2년 전
몇일이 걸릴수도 있나요?
e
eoqkrrmwj
2년 전
속도의 변화가 없습니다 ㅎㅎ;;

검색속도
웅프
2년 전
그렇다면 캐싱은 필수로 하시구요
Sphinx 검색 서버의 하드웨어 리소스를 확인 해보세요.
메모리, CPU, 디스크 속도등등

일단 sphinx.conf 설정 부분 에서 메모리 할당 크기를 조금 늘려보시구요
indexer
{
mem_limit = 256M
}

설정변경후에는 Sphinx를 다시 시작 필히 하셔야합니다.


수고 하셨습니다.
항상 느림의 미학으로 찬찬 히 확인 또학인 하다보면 다 됩니다. 응원할께요 화이팅!~
e
eoqkrrmwj
2년 전
제가 centos7 을 사용하는데요... centos6 을 적용한 설치 방법이었더라구요...

혹시 centos7 과 centos6 의 설치 차이가 있을까요?
웅프
2년 전
네 있습니다. 업그레이드 해주세요
install sphinx
설치 후 sphinx.conf 파일을 편집하여 검색 인덱스와 소스를 확인하시고 정의 가 않되어있으면 재정의 해 주 셔야 합니다.
설정후에는 재시작하는것 필 해주시구요 또한 서버 재시작시 자동 부팅 되도록 해주시구요
e
eoqkrrmwj
2년 전
아니요 해당 설명글이 centos6 이고 제가 centos7 입니다...
웅프
2년 전
아네 ;;;==;; 구성 차이는 없습니다.

댓글을 작성하려면 로그인이 필요합니다.

2년 전

그누보드 소스도 고쳐야 속도가 빨라질겁니다.

해당글 작성자가 그누보드에 수정해야 할 코드는 따로 설명해두진 않았네요.  

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

e
eoqkrrmwj
2년 전
혹시 팁을 좀 얻을 수 있을까요... 사이트가 문제인줄 알고 지금 사이트만 7개째 생성 삭제하고 있습니다..ㅠ
솔그루
2년 전
원글 작성자에게 요청하시는게 좋지 않을까요?
e
eoqkrrmwj
2년 전
쪽지를 보낼수가 없습니다.. 정보 공개를 안하셨더라구요 댓글도 못쓰게 되어 있구요

다른곳 답글을 적으신곳에 댓글을 달아놓긴했지만 보실지는 모르겠습니다...

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인