2010-10-08 4 views
5

Noob-ish 질문 : 구조에 관계없이 가벼운하지만 괜찮은 PHP 방법을 사용하여 MySql 테이블의 모든 필드를 검색합니다. 처음에는 기본 mysql select를 사용하여 직접 시도해 보았습니다.하지만 너무 기본적인 것입니다. 나는 적어도 일치하는 결과를 주문해야하는 무언가를 찾고있다. (키워드 하이라이팅도 좋을 것이다.)기본 PHP/MySQL 검색 클래스를 찾고

내가 인터넷 검색으로 찾은 작은 정보에 놀랐습니다. 내가 지금까지 발견 한 내용은 Zend Framework Lucene implementation이지만 내 필요에 따라 너무 무거워 보인다. 그것으로 파기 전에 나는 더 쉬운 방법이 있는지 궁금해서 생각하고 있었다.

답변

3

검색이 매우 복잡하기 때문에. 당신이 묻고있는 것을 생각해보십시오. 테이블을 어떻게 배치하고 관련성이 있고 어떤 물건을 주문해야 하는지를 파악할 수있는 작은 검색 엔진이 필요합니다. 개발자가이를 만들 수 있다면 부자가되며 Google에서 일하게 될 것입니다.

Lucene 당신이 언급 한 것처럼, 또는 스핑크스 검색 (http://sphinxsearch.com/)이 좋습니다. MySQL에는 또한 전체 텍스트 검색 기능이 내장되어 있습니다. http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

그러나 이들 모두는 구성과 구현을 취합니다. 그들은 단지 당신이 원하는 것을 "알기"위해가는 것이 아닙니다.

내가 생각할 수있는 가장 가까운 것은 Google 맞춤 검색 (http://www.google.com/cse/)을 시도하는 것입니다. 이것은 데이터베이스를 보지 않고 대신 동적으로 집계 한 후 사이트를 거미로 만들고 페이지를 색인화합니다. 색인이 Google에서 모두 완료되었으므로 색인에 대해 걱정할 필요가 없습니다. 물론 순위를 맞춤 설정할 수는 없지만 (Google은이를 결정합니다.) 사용자는 데이터를 포기할 수는 있지만 찾을 확률은 "out of the box"솔루션에 가깝다고 생각합니다.

1

나는 Sphider (http://sphider.eu) 검색 엔진의 팬입니다.

비교적 가볍고 설정하기 쉽고 여러 사이트를 처리합니다. Google 맞춤 검색과 마찬가지로 테이블을 직접 검색하지 않고 동적으로 작성한 후에도 페이지를 직접 검색합니다.

Sphider는 엔터프라이즈 솔루션이 아니지만 성능에 큰 타격을주지 않으면 서 ~ 10,000 페이지 사이트까지 작동합니다.

관련 문제