검색엔진 프로그램을 만드는데 있어서 만약 MySQL DBMS 를 이용한다면 이것은 SQL 명령어를 어떻게 사용하느냐 하는 것은 문제가 되질 않습니다. 오히려 더 큰 문제는 어떻게 알고리듬을 만드냐 하는 것입니다. MySQL 의 경우 어차피 복잡한 subquery, transaction 등을 지원하지 않기 때문에 일반적인 오라클 등의 DBMS와 비교하여 몇번의 query 더 줘야 하는 것은 할 수 없는 현실입니다. 그러니 그런것으로 고민할 필요는 없다고 생각합니다. 가장 최적화된 프로그램 알고리듬을 개발하는 것이 더 시급한 현실 같습니다.
like 연산자는 mask character 를 이용하기 때문에 당연히 일반적인 = 연산자 보다는 느릴수 밖에 없습니다. 하지만 그렇다고 하더라도 프록램에서 사용할 시기가 되었다면 사용할 수 밖에 없습니다. 그런것은 큰 고민 거리가 되지는 않을 것 같습니다. 그리고 130 바이트 짜리라면 크게 문제 될 것 같지는 않습니다.
일반적으로 Yahoo 등과 같은 검색엔진들은 이렇게 DBMS 를 이용한다기 보다는 검색 및 정보의 등록에는 디렉토리 서비스라는 것을 이용합니다. 제일 많이 이용되는 것이 netscape directory engine 이지요.
이것이 open project 로 개발되어 있는 것이 OpenLDAP 입니다. LDAP 라는 lightweight directory access protocol 입니다.
LDAP로 기타 사이트에서 한번 검색해 보시기 바랍니다.
> 전 검색엔진에 관심이 많은 백성입니다.
> YAHOO와 같은 검색엔진을 만들기 원하는데 SQL 명령을 어떻게 써야할지 고민입니다.
>
> 제가 알기로는 SELECT 문에서 like 문을 쓰면 검색이 비교적 늦다고 알고 있습니다.
> 만약 130바이트의 필드에 있는 내용중에서 OR 나 AND 를 사용하여 검색한 때 보다 빠
> 른 검색방법이 있는지 궁금합니다.
> 혹시 YAHOO와 같은 검색엔진은 어떤방법을 사용하는지도 궁금하고요.
> 저는 현재 Linux OS를 사용하고 MySql을 사용하려 합니다.
>
> 많은 지도 부탁드립니다.
|