공룡호가 사는 세상 이야기

간만에 웹기반 코딩을 하니, 생각보다 잘 안됩니다.
늘 그렇지만, 간단한 것 하나 때문에 고생하다가 노트 해 둡니다.
그 전에 중요한 것 한가지. 물론 잘 알고 계시겠지만...
Javascript는 클라이언트 사용자의 컴퓨터에서 실행되며, PHP는 서버에서 해석되고 실행됩니다.


1. 변수를 그냥 쓰는 방법
<script>
function fx()
{
    excution += "<?=$variable?>";
}
</script>
※ string 따위의 경우, 앞뒤에 \" 처리 필요.

2. 파라미터로 전달하는 방법
<script>
function fx(variable)
{
     excution += variable;
}
</script>

※ call
echo("<script>fx(\"$phpvar\");</script>");



php/ext 또는 php/extension 내부에 php_mssql.dll 파일이 존재하는지 확인.
없으면, php 재설치 또는 해당 파일 copy 필요.
있으면, php.ini 파일에 다음 내용 기술
extension=php_mssql.dll (NT)
extension=php_mssql.so (Solaris & Linux)
혹자는 mysql_ 로 시작하는 함수들을 mssql_ 로 바꾸어야 한다고 하는데, mysql_ 로 해도 정상 작동한다.


PHP로 커스텀 검색엔진 구현하기

운영중인 사이트가 일정 크기 이상으로 방대해지면, 사용자로 하여금 원하는 정보의 접근성이 떨어지게 된다.
그럴 경우 사용자들은 대개 검색을 이용하게 되는데, 사이트 자체에서 검색 기능을 제공하지 않는다면, 원하는 정보가 어디에 있는지 찾기가 힘들게 된다.
구글에서는 특정 사이트를 대상으로 검색을 하는 기능도 제공하고 있으나, 보다 구체적인 검색 결과를 만들어 낼 수가 없으며, 모든 사이트에 잘 맞는것은 아니라는 점에서 사이트 자체적으로 검색 기능을 제공하는 것이 좋다.

또한 자기 사이트에 특화된 검색 기능을 제공하려면, 데이터 소스와 그 소스를 검색해야 하는데, 웹APP의 경우, 일반적으로 관계형 DB이다. 그러나 일부 검색들은 DB가 수행할 수 있는 것 보다 더 특화되어 있거나, 검색이 너무 복잡해 질 경우에는 SQL의 JOIN 연산으로는 벅찬 것이 사실이다.

여기서는 무료인데다, 오픈소스 검색엔진인 Sphinx를 대안으로 삼는다. 장점으로는 텍스트를 매우 빠르게 검색하는데 있는데, 예를 들어, 다섯 개의 인덱스 컬럼과 약 30만 개의 행을 가진 활성 데이터베이스에서, 각 컬럼은 15단어를 포함하고 있다면 Sphinx는 "any of these words" 검색 결과를 100분의 1초 안에 찾아낸다.
(2-GHz AMD Opteron Prosessor, 1GB RAM, Debian Linux® Sarge)

그 외에도 Sphinx는 많은 장점들을 가지고 있는데, Spninx와 PHP를 이용하여, 자신의 사이트에 특화된(!!) 검색 엔진을 장착할 수 있다는 점은 굉장한 매력이지 않은가?
다음은 IBM developerWorks의 Article로 업데이트 된 지 일주일도 되지 않은 따끈따끈한 Article이다.
예제로 자동차의 부품을 판매하는 사이트에 특화된 검색 엔진을 만드는 방법에 대해 자세히 설명하고 있는데, 대충의 방법론만 말하고 있는 것이 아니라, 기본적으로 자동차 부품을 판매하는 사이트의 데이터들부터 규정하고, 일반적인 검색의 비용을 산출하고 그것이 왜 비효율적인지를 분석하며, 그 대안으로 Sphinx를 제시하고 있다.

본문의 내용을 빌리자면,
' 인터넷 시대에, 사람들은 패스트 푸드와 같은 형태의 정보를 원한다. 즉각적으로 제공되고, 노력을 들이지 않아도 되며, 적당한 크기(Byte-size)로 제공되는 음식을 원한다. 실제로 인내심 없고 배고픈 대중들의 구미에 맞추려면, 웹 사이트는 바로 효과가 나타나는 포멧을 제공해야 한다 '

이러한 맥락에서 Sphinx를 이용하여 특정 웹사이트에 특화된 검색 서비스를 구현할 수 있고, 그 것의 효율 또한 우수하다면, 한번 쯤 구현해 볼 만한 가치가 있지 않을까?
시간나는 틈틈히 나의 블로그를 대상으로 구현을 해 본 결과, 적어도 Sphinx PHP API문서 쯤은 구해 놓고 시작하는 것이 도움이 될 지도 모르겠다.

요 근래 각종 기업들에서 제공하는 openAPI를 이용한 매시업이 인기를 끌고 있는데, 거대한 포털의 DB에서 openAPI들의 조합들로 자신이 주기적으로 원하는 데이터들만을 추출하여 보고자 할 때에도, 간단하게 구현할 수 있는 이 Sphinx는 추출된 데이터들을 대상으로 효과적인 검색을 수행할 수 있다고 생각한다.
이를 어떻게 응용하느냐는 물론, 사용하는 사람들의 몫이겠지만 말이다.

IBM developerWorks - PHP로 커스텀 엔진 구현하기 (07.10.02)
http://www.ibm.com/developerworks/kr/library/os-php-sphinxsearch/

REF.