답변 2개 / 댓글 18개
채택된 답변
+20 포인트
똑같이 다음 3가지 모두 다 수정(추가)을 해줘야 합니다.
제일먼저 sphinx.conf 파일 열어서 데이터를 색인할 ww1,ww2,ww3 ~ ww20 필요한 만큼 게시판 데이터베이스 정보 및 쿼리 설정을 추가하고, 다음 인텍스 수정을 해주면되지않을까합니다.
1. indexer
: 색인을 수행하는 명령어입니다.
2. searchd
: 검색과 검색결과를 전송해주는 데몬입니다.
3. sphinx.conf
: 스핑크스 설정파일입니다. /etc/sphinx/sphinx.conf 에 위치합니다.
답변에 대한 댓글 15개
네 실제 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 식별자를 추가 해주면 되겠습니다.
만약 다른 게시판에 대한 데이터도 검색하려면게시판에 대한 데이터 쿼리를 예를 들어 다음과 같이 각각 추가해 주셔야 합니다.
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
하나씩 다 추가해주는건 아닌듯하네요
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
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/
}
이부분은 마지막에 한번만 넣으면 되는건가요?
이부분은 실제 제 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/
}
이부분은 마지막에 한번만 넣으면 되는건가요?
그누보드 소스도 고쳐야 속도가 빨라질겁니다.
해당글 작성자가 그누보드에 수정해야 할 코드는 따로 설명해두진 않았네요.
답변에 대한 댓글 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/
}