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

설문토론

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

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

본문

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

  • 예5)

    18표 90%
  • 예6)

    2표 10%
POLL 종료되었습니다.
총 참여 수 20

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

 

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

 

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

예1)

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

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

예2)

그누보드를

사용하여

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

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

 

또한

예3)

누보드를

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

예4)

보드를

도 마찬가지입니다.

 

예1에서 

예5)

그누보드를

사용하여

만든

사이트

입니다

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

예6)

누보드를

보드를

드를

용하여

하여

이트

니다

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

 

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

 

여기서 여쭈어 볼것은

 

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

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

 

입니다.

 

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

댓글 전체

제가 잘 몰라하는 말입니다만...
데이터 입출력이 많아지고 있는 추세라 myisam보다는 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은 한글처럼 조사가 붙어버리는 언어들에 대응하기 위해 만들어진거라, 한글 중문 일본어 등등에 적용이 됩니다. :)
디비관련 클래스? 에서 mysql 버전을 확인하여 5.7.6 이상일때는 n-gram 방식의 fulltext 를, 그렇지 않은 경우에는 like 또는 my.cnf 를 수정할수있는 사람에 한해 fulltext 를 사용하도록 하는 옵션을 두면 괜찮을 것 같습니다! ㅎ
그리고 N-gram 방식이 아닌경우 검색쿼리에서 키워드가 "그누"가 들어왔을때 MATCH(필드) AGAINST ('그누*' IN BOOLEAN MODE) 이렇게 쿼리를 땡기면 그누보드는 과 같이 그누로 띄워지지 않은 단어? 도 검색에 걸리게 할 수 있습니다.
다만 키워드로 "누보" 가 되었을때 *누보* 로 검색은 되지 않기때문에 "그누보드는 " 부분은 누보 라는 키워드론 안걸리지요. <- 이런 경우는 대략 무시해도 될듯!
N-GRAM 방식의 경우는 암거나 다 검색이 됩니다.
적고보니 설문하시는 의도와는 전혀 다른말만 적어놨네요 ㅠ _ㅠ
데이터량이 많아진다. 라는거 어떤의미인지 잘 몰라 설문에는 참여하지 못하였습니다.
데이터량이 많아진다. 라는게 검색에 걸리는 글이 많아서 혼란스러워진다? 라는 의미라면 기본적으로 Fulltext 검색은 해당 검색어가 많은 ROW순으로 보여주기 때문에 가장 일치하는 것부터 사용자가 보게 될테니 검색에 걸리는 글이 많아져도 크게 문제는 없을지도...
전체 252
설문토론 내용 검색

회원로그인

진행중 포인트경매

  1. 디오리진 버전 샤아전용 자쿠1

    참여33 회 시작19.06.13 23:12 종료19.06.16 23:12

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT