2012-09-18 3 views
0

책, 저자 및 기타 세부 사항의 이름이 포함 된 MYSQL 데이터베이스가 있습니다.PHP에서 Mysql 테이블 인덱싱

인덱싱 엔진에서 검색 할 수있는 엔진은 무엇입니까?

Sphider을 사용하고 싶습니다.

MySQL 데이터베이스에서 작동합니까?

+0

어떤 종류의 검색을 수행 하시겠습니까? 검색된 데이터는 어떤 모습입니까? –

+0

Sphider는 데이터베이스가 아닌 웹 사이트를 스파이더 링/색인 생성하기위한 도구입니다. 구조화 된 웹 페이지 집합을 통해 데이터를 노출 한 경우 아마도 그럴 것입니다. [문서 읽기] (http://www.sphider.eu/docs.php). – Orbling

+0

'Sphider'는 자신의 웹 사이트에 대한 검색 엔진을 설정하는 데 적합하지만 일반 데이터베이스 검색 엔진으로 만들지는 않습니다. 이를 위해서는 다른 도구가 필요합니다. –

답변

2

해결책 1 : 검색하려는 레코드가 포함 된 테이블에 MyISAM 테이블 엔진을 사용하십시오. 그런 다음 검색하려는 열에 대해 색인을 작성한 다음 전체 텍스트 검색 기능을 적용 할 수 있습니다. http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

참고 : MyISAM을 사용할 때 트랜잭션 기능이 없으므로 테이블이 손상되어 복구가 어려울 수 있습니다. 또한, MySQL 5.6.4부터 InnoDB는 전체 텍스트를 지원합니다 (새로운 기능이기 때문에 버그가있을 수 있으며 벤치 마크는 아직 충분하지 않습니다).

해결책 2 : 스핑크스 검색 서버를 사용하십시오. 슈퍼 빠른 분산 검색 시스템입니다. 스핑크스는 MySQL 데이터베이스에서 색인을 생성하려는 필드를 가져 와서 색인을 생성합니다. 그런 다음 Sphinx SQL을 사용하여 쿼리와 일치하는 문서 ID를 가져 오거나 Sphinx API (잘 알려진 언어에 대해 제공)를 사용하여 일치하는 문서 ID를 얻을 수 있습니다. http://sphinxsearch.com/

스핑크스는 색인 생성 및 쿼리 제공시 매우 빠릅니다. 살펴볼 가치가 있습니다. 나는 그것을 추천 할 것이다.

+0

해결 방법 1은 손상되어 복구하기 어려운 트랜잭션, 기간 및 취약한 테이블을 의미하지 않습니다. 이상적이지 않습니다. 솔루션 2는 훨씬 강력합니다. – tadman

+0

그렇기 때문에 나는 스핑크스를 결국 추천했다. BTW Innodb는 이제 전체 텍스트 검색 기능을 제공합니다. MySQL 5.6.4 (또는 최신 InnoDB)를 사용하고 있다면 트랜잭션, 견고한 테이블 및 훌륭한 복구를 얻을 수 있습니다. – Muhammad

+0

InnoDB 인덱스 기능을 포함하도록 답을 수정해야합니다. MyISAM을 사용하는 것은 그것과 비교해 슈퍼 해킹입니다. – tadman

2

모든 데이터가 이미 mysql 데이터베이스에 있으면 검색/인덱싱 엔진이 필요하지 않습니다. MySQL 데이터베이스 쿼리를 위해 PHP에서 사용할 수있는 확장 기능 중 하나 인 MySQLi or PDO을 사용하십시오.
확장 프로그램 설명서를 읽고 기능 사용 방법을 익히십시오.

그러면 PHP/MySQL 코드를 작성하여 데이터베이스의 데이터를 조작 할 수 있습니다.

+0

검색 엔진은 검색 할 때 성능과 지능을 크게 향상시킬 수 있습니다. – tadman