Background Image

FORUM

조회 수 14810 추천 수 0 댓글 6
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요. 큐브리드를 사용하여 웹서버(XE)를 운영하고 있습니다.

검색 시 한글검색 부분은 해결했는데 영문검색 시 대소문자를 구분하여 영향이 있습니다.

 

예로 대문자 P로 쓰여진 글을  소문자 p로 검색할 경우 검색 결과가 나타나지 않습니다.

또한 반대로 소문자로 쓰여진 글을 대문자로 검색 시 나타나지 않습니다.

 

초보라 그런데 수정할 구문과 수정위치를 정확하게 알려 주시면 감사하겠습니다.

 

답변 부탁드립니다. 감사합니다.

  • ?
    seongjoon 2012.01.25 08:30

    안녕하세요.

    큐브리드를 사용해 주셔서 감사합니다. 문의하신 내용에 대하여 빠른 시일 내에 확인하여 알려드리도록 노력하겠습니다.

  • ?
    이용미 2012.01.27 23:51

    안녕하세요. 질문하신 내용의 답변입니다.

     

    검색 결과에 차이가 나는 이유는 MySQL은 DB에서 대소문자를 구분하지 않고(Case insensitive), CUBRID는 대소문자를 구분하기 때문입니다. 한글 검색어에 대해서는 문제가 되지 않으나, 영문 검색어에 대해 검색 결과가 차이가 나서 불편하실 것 같은데요. 조사해보니 현재 8.4.0 버전에서는 해결방안이 없는 것 같습니다. 8.4.1 이후 버전에서 최대한 동일한 검색 결과가 나올 수 있도록 XE팀과 논의 중에 있습니다.

     

    굳이 방법을 찾는다면,

    XE 코드를 잘 아시는 분이고, DB 크기가 작아서 성능 문제가 없다면..DB검색 쿼리를 직접 수정하실 수 있겠습니다.

    select col1, col2 from tbl where col1 like a”의 경우 소문자 a만 검색 결과로 출력될 것입니다.

    그러나 이것을

    -       select col1, col2 from tbl where lcase(col1) like lcase(a)    : 소문자로 통일하여 검색(lcase lower로 대체 가능)

    -       select col1, col2 from tbl where ucase(col1) like ucase(a)  : 대문자로 통일하여 검색(ucase upper로 대체 가능)

    로 변경하여 사용하신 다면 원하시는 결과 값이 나올 것 입니다.(함수의 사용으로 인덱스를 못타게 되므로, 첫 번째 sql에 비하여 두, 세 번째 sql은 성능상의 저하가 발생할 수 있습니다.)

     

    Xe 검색 관련해서는 어느 부분을 수정해야 하고, 어떤 sql문을 수정해야 하는지는 저희가 잘 알지는 못하므로 정확한 답변을 드리기가 어렵습니다. 저희가 좀더 조사를 한 후 댓글에 남기도록 하겠습니다.
  • ?
    재권 2012.02.01 03:30

    계속 기다리던 내용이었습니다. 답변 주시니 감사드립니다. 조금 더 조사 후 수정부위를 알려 주셨으면 합니다.

    반드시 향후버전에서는 개선되었으면 합니다.

  • ?
    샤롱스판 2012.02.01 03:52

    XE후속버전에서 CUBRID 사용시 대소문자를 구분하지 않고 검색결과가 나올 수 있도록 XE팀에 요청해둔 상태입니다. XE 후속 버전이 나오면 CUBRID 8.4.1버전으로 DB 업그레이드하시면서 XE도 함께 업그레이드해주세요. 불편하실텐데 좋은 제보 감사드립니다.

    직접 수정할 코드(XE가 생성하는 SQL 검색 쿼리)는 저희가 8.4.1버전과 테스트 후에 알려 드리겠습니다.

  • ?
    seongjoon 2012.02.01 04:35

    다음 부분을 수정하니 대소문자 동시 검색이 되는군요.

    sandbox/classes/db/DB.class.php 파일에서 531번째 라인 정도에(xe버젼에 따라 다를 수 있음) 아래와 같은 문구를 변경하시면 됩니다. 단, 전체적인 테스트를 해보지는 못했으며, 검색 부분에서만 확인을 하였으므로 기존 파일은 문제가 생기면 바로 복구 가능하도록 백업을 해두셔야 됩니다.

    변경전

    case 'like_tail' :

    case 'like_prefix' :

    case 'like' :

    return $name.' like '.$value;

    break;

    변경후

    case 'like_tail' :

    case 'like_prefix' :

    return $name.' like '.$value;

    break;

    case 'like' :

    return "UPPER(".$name.") like "UPPER(".$value.")";

    break;

  • ?
    샤롱스판 2012.02.08 20:18

    대소문자 구분 검색 문제를 해결한 코드가 XE에 반영되었습니다. http://code.google.com/p/xe-core/downloads/list 에서 xe.1.5.1.6.ko.changed 파일을 다운받아 현재 응용을 업그레이드해주세요.

    또한, DB도 841버전으로 업그레이드하셔야 합니다. http://www.cubrid.com/zbxe/266178 첨부파일에 있는 릴리스 노트를 참고하시면 업그레이드 방법이 자세하게 나옵니다. 간단히 말씀드리면, 1.840 DB정지, 2. 840에 있는 *.conf파일 백업 3. 841엔진바이너리 overwrite 4. php driver 841버전으로 교체 5. 2에서 백업한 *.conf파일 overwrite 단, cubrid_broker.conf파일에 있는 CCI_DEFAULT_AUTOCOMMIT=ON으로 변경해주세요. 6. DB재시작입니다.

    php driver 841과 엔진은 ftp://ftp.cubrid.org/CUBRID_Drivers/PHP_Driver/8.4.1/  ftp://ftp.cubrid.org/CUBRID_Engine/8.4.1/ 에서 다운받을 수 있습니다.

    단, 841버전은 릴리스된지 얼마 안된 버전이라서 조만간 패치가 나올 예정입니다. 아예 엔진 패치가 나오는 시점에 작업을 진행하시는 것도 좋겠습니다. 감사합니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4443
3987 tomcat7 + cubrid 1 깽즈야 2012.07.27 91020
3986 원격접속이 안되네요????????? 2 Chris 2013.07.23 89530
3985 현재 연결은 원격 호스트에 의해 강제로 끊겼습니다 1 바람바람 2013.05.29 84888
3984 CUBRID 7.3 + zeroboard XE 관리자 로그인 에러 1 윤희서 2009.01.17 83642
3983 cub_master: Cannot bind local address... aborting.... Address already in use 4 박상현 2008.11.28 83564
3982 큐브리드 다운로더 오류 발생 5 file 차오이 2008.11.22 78487
3981 zeroboard XE 설치시 'database connect fail' error 4 윤희서 2009.01.16 78164
3980 Image 데이터타입 사용방법 3 AD 2008.11.25 73850
3979 clob 문의 1 김해영 2012.11.29 73008
3978 linux server 환경에서 php 버전은 어떤걸로 선택해야하는지. 1 거기 2008.11.30 66366
3977 델파이에서는 어떻게 사용할수 있을까요? 2 이상원 2008.11.29 65567
3976 if exists 조건 처리문? 2 콩이아부지 2013.03.06 63606
3975 update 쿼리를 이용한 시리얼 수정에 관하여 1 인경수 2008.11.27 63453
3974 큐브리드 2008 설치시 윈도우 서비스에 등록되지 않습니다. 3 file 진이 2008.11.22 63170
3973 CUBRID 7.3 + zeroboard XE 관리자 로그인 에러 1 윤희서 2009.01.17 62130
3972 큐브리드 maven repository 관련 문의 3 StoneHouse 2013.04.30 61468
3971 메니저에서 접속 안되는 오류 2 유나인 2013.08.16 61067
3970 .NET DB 제어를 위한 방법. 2 우페 2008.11.23 60878
3969 JDK가 두개 설치된 경우 선택적으로 JDK를 설정 할 수 있는 방법은 없는지요 1 GoFly 2008.11.28 60615
3968 데이터 이관시 소유자 변경 가능한가요??? 1 델몬트 2013.08.08 60066
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales