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

like 검색 대신 fulltext 검색을 사용하려 하는데 데이터량 때문에 고민입니다.

· 7년 전 · 4397 · 21

그누보드의 검색 속도를 높이기 위해 fulltext 검색에 대해 살펴보고 있는 중입니다.

 

fulltext 검색은 mysql 기본 설정으로 4글자 이상의 단어에만 적용이 되는 것으로 알고 있습니다.

 

가령 이런 내용이 있다고 한다면 

예1)

그누보드를 사용하여 만든 사이트 입니다.

기본적으로 검색이 되는 단어는 아래와 같이 단 두단어 입니다.

예2)

그누보드를

사용하여

"만든"과 "사이트" 그리고 "입니다"는 빠지게 되지요. 

(특수문자 . 과 같은 것들은 검색에서 제외합니다.)

 

또한

예3)

누보드를

과 같은 4글자 단어도 검색이 안되지요.

예4)

보드를

도 마찬가지입니다.

 

예1에서 

예5)

그누보드를

사용하여

만든

사이트

입니다

와 같이 공백으로 구분된 단어는 검색이 되게 하되

예6)

누보드를

보드를

드를

용하여

하여

이트

니다

와 같이 공백으로 구분되지 않은 단어는 검색이 안되게 하는 것입니다.

 

기술자가 방법을 다 알고 있다고 하여도 모든 것이 구현되도록 배포되는 코드에 담기는 상당히 어렵습니다.

 

여기서 여쭈어 볼것은

 

예5)와 같이 검색이 되면 된다. (공백으로 구분된 단어만 검색이 된다. 상대적으로 관리과 쉽고 데이터량이 적다)

예6)과 같이 검색이 되어야 한다. (모든 단어가 검색이 된다. 상대적으로 관리가 어렵고 데이터량이 많다)

 

입니다.

 

회원님들의 생각은 어떠신지요?

댓글 작성

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

로그인하기

댓글 21개

제가 잘 몰라하는 말입니다만...
데이터 입출력이 많아지고 있는 추세라 myisam보다는 innoDB쪽으로 대세가 기울고 있는듯 합니다.
검색을 위해 fulltext지원이 필요 하다는건 이해는 되지만 ...

아 정말 몰라서 하는말이니 너무 신경쓰진 말아주세요
다행이도(?) innoDB 최근 버전에서는 fulltext 를 지원한다고 합니다.
innoDB 지원에 대해서도 고민해 보겠습니다.
+1
아 innoDB에서도 fulltext지원이 되는군요 소중한 정보 감사합니다 ^^
mysql 5.6.4 부터 innoDB에 대해 Fulltext 지원이 되고 있습니다. :)
왼만한 메이져 사이트는 기본적으로 효율때문에 fulltext search 를 합니다.
그누보드가 대용량 데이타를 처리하기 위한 걸림돌이이 그것만은 아니겠지만 일단 하나씩 해결해 나가야 겠지요 ^^
mysql 5.7 부터인가요?
기본적으로 한글에 대해 n-gram fulltext 검색이 지원됩니다.
그누보드 라는 키워드를 넣으면
그누 / 누보 / 보드 / 그누보 / 누보드 키워드로 fulltext 검색이 됩니다.
mysql 5.7.6 부티 지원되네요
Fulltext 인덱스 생성시 ALTER TABLE 테이블명 ADD FULLTEXT(필드명) WITH PARSER ngram; 하시면 ngram 이 적용되어 2글자 검색어도 지원됩니다.
5.7.6 버전 이하라 할지라도 my.cnf 에 fulltext 검색어 최소길이를 기본 4자에서 2자로 수정해서 사용하면
2자도 검색이 됩니다.
my.cnf 설정을 바꾸는 것은 알고 있었는데 ngram 은 몰랐습니다.
다만, 이게 영문에만 해당되는 것인지 확인이 필요하겠네요.
알려주셔서 감사합니다.
영문은 조사가 단어뒤에 붙는경우가 없기때문에 기본적인 띄워쓰기 기준 fulltext만으로 충분합니다.
n-gram은 한글처럼 조사가 붙어버리는 언어들에 대응하기 위해 만들어진거라, 한글 중문 일본어 등등에 적용이 됩니다. :)

게시글 목록

번호 제목
5902
5861
5807
5761
5744
5733
5718
5636
5602
5561
5545
5496
5450
5391
5329
5293
5278
5228
5163
5124
5119
5097
5083
5062
5028
4985
4967
4936
4863
4843