일상 기록 창고

도로명 FullText 로 테스트 본문

프로그래밍/mysql

도로명 FullText 로 테스트

Crazy_Kong 2014. 1. 29. 10:10

 

1. Mysql5.6 부터 Innodb 에서 fulltext 가 됀다고 해서 함 해봄

 

 
CREATE TABLE `postroad1` (
  `cPost` char(6) NOT NULL DEFAULT '' COMMENT '우편번호',
  `cPostNum` char(3) NOT NULL DEFAULT '' COMMENT '우편일련번호',
  `vcSido` varchar(20) NOT NULL DEFAULT '' COMMENT '시도',
  `vcSidoEng` varchar(80) NOT NULL DEFAULT '' COMMENT '시도영문',
  `vcSiGun` varchar(80) NOT NULL DEFAULT '' COMMENT '시군구',
  `vcSiGunEng` varchar(80) NOT NULL DEFAULT '' COMMENT '시군구영문',
  `vcEup` varchar(80) NOT NULL DEFAULT '' COMMENT '읍면',
  `vcEupEng` varchar(80) NOT NULL DEFAULT '' COMMENT '읍면영문',
  `cRoadCode` char(12) NOT NULL DEFAULT '' COMMENT '도로명코드',
  `vcRoadName` varchar(80) NOT NULL DEFAULT '' COMMENT '도로명',
  `vcRoadNameEng` varchar(80) NOT NULL DEFAULT '' COMMENT '도로명영문',
  `cUnder` char(1) NOT NULL DEFAULT '' COMMENT '지하여부',
  `nBuildNo1` smallint(3) unsigned NOT NULL DEFAULT '0' COMMENT '건물번호본번',
  `nBuildNo2` smallint(3) unsigned NOT NULL DEFAULT '0' COMMENT '건물번호부번',
  `vcBuildCareNo` varchar(30) NOT NULL DEFAULT '' COMMENT '건물관리번호',
  `vcSendName` varchar(100) NOT NULL DEFAULT '' COMMENT '다량배달처명',
  `vcBuildName` varchar(100) NOT NULL DEFAULT '' COMMENT '시군구용건물명',
  `vcLawdongNo` varchar(100) NOT NULL DEFAULT '' COMMENT '법정동코드',
  `vcLawdonName` varchar(100) NOT NULL DEFAULT '' COMMENT '법정동명',
  `vcRi` varchar(100) NOT NULL DEFAULT '' COMMENT '리',
  `vcSan` varchar(5) NOT NULL DEFAULT '' COMMENT '산여부',
  `vcJiNo1` varchar(5) NOT NULL DEFAULT '' COMMENT '지번본번',
  `vcEupSerial` varchar(5) NOT NULL DEFAULT '' COMMENT '읍면동일련번호',
  `vcJiNo2` varchar(5) NOT NULL DEFAULT '' COMMENT '지번부번',
  FULLTEXT KEY `IDX_FTS` (`cPost`,`vcSido`,`vcSiGun`,`vcEup`,`vcRoadName`,`vcBuildName`,`vcLawdonName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='도로명 주소'

2. 검색방법

 

   기존검색

   SELECT * FROM postroad WHERE vcSido = '인천광역시' AND vcLawdonName = '산곡동' GROUP BY `vcRoadName`  

 

   바뀐 검색방법

   SELECT * FROM `postroad1`
    WHERE MATCH (`cPost`,`vcSido`,`vcSiGun`,`vcEup`,`vcRoadName`,`vcBuildName`,`vcLawdonName`)
    AGAINST ('+인천* +산곡동' IN BOOLEAN MODE )
    GROUP BY `cPost`

 

 

뭐 제대로 된것인지는 모르겠지만 검색 결과는 동일하게 나오니... 맞다 치고 ㅎㅎㅎㅎ