2017-03-21 4 views
-1

REST API에 대한 검색 기능을 구현하고 있으며 대규모 데이터베이스 검색을 처음으로 처리합니다.FULLTEXT 검색에 대한 지원 테이블을 사용한 데이터베이스 검색

내 MySQL의 위치 테이블에는 다음과 같은 열이

| id | name | email | phone | postcode | address | verified |

사용자는 name, email, phone, postcode or address하여 위치를 검색 할 수 있습니다.

입력 된 검색 문자열이 다른 필드를 구분하지 않습니다. 즉, 입력 텍스트 상자가 하나만 있고 그 문자열이 위의 검색 가능한 각 입력란과 일치합니다 (이는 의도적으로 필요합니다).

지금까지 입력 문자열을 가져 와서 일치하는 ... 검색 할 수있는 각 열에 대해 쿼리를 실행하고 결과를 병합 한 다음 반환했습니다.

그러나 두 열이있는 지원 색인 테이블 (location_query)을 만드는 것이 더 좋지 않습니다.

| location_id | match_query |

과 위치 내가

0 | {NAME} {EMAIL} {PHONE} {POSTCODE} {ADDRESS}

다음 단순히 match_query 열에 전체 텍스트 검색을 실행 같은 값을 갖는 location_query에 새 행을 추가 할 수 있습니다 추가 될 때?

이 작업을 수행 할 수 있습니까?

답변

0

성능 요구 사항, 데이터 양 및 현재 사용자로드에 대한 세부 정보를 제공하지는 않았지만 RDBMS 대신 검색 엔진 (예 : Apache Solr)을 사용하도록 제안했습니다. 인덱싱 및 검색 전략을 세밀하게 제어하고 성능을 향상시킬 수 있습니다.

+0

답변 감사합니다. 현재로서는 특정 성능 요구 사항이 없으며 지금은 조롱하는 데이터가 있습니다. 이는 전문 응용 프로그램이 아니라 사용자로드가 없음을 의미하는 학습 프로젝트입니다. 저는 주로 확장 성을 목표로 노력하고 있습니다. 나는 데이터베이스 검색 엔진에 대해 몰랐고 그들을 조사하기 시작할 것이다. 고마워 – WiserTheBassist

+0

@WiserTheBassist, Apache Solr로 시작할 수도 있습니다. 매우 안정적이며 초보자를위한 설명 문서 및 커뮤니티가있어 매우 편리합니다. –

+0

예, 나는 그것을 조사해 왔지만 공유 호스팅 계획에 있고 cPanel로 제한되어 있으므로 Apache Solr 또는 다른 데이터베이스 검색 엔진을 설치할 수 있다고 생각하지 않습니다. – WiserTheBassist