2011-01-10 3 views
1

서언하려면, Google App Engine을 사용하여 JOINS 또는 전체 텍스트 검색을 허용하지 않습니다.자동 완성 검색을위한 서버/클라이언트로드 균형 조정

문제 : 나는 (구글 빠른 검색 등)을 자동 완성 검색 창 구축을 위해 노력하고있다. 설명을 위해 데이터베이스의 각 항목이 공백이없는 큰 문자열이라고 가정합니다. "cr"을 입력하면 "cr"로 시작하는 모든 문자열에 자동 완성 기능이 적용됩니다. Google App Engine에서이 검색을 수행하는 방법을 알아 냈지만 입력 검색 막대에서 키를 누를 때마다 서버에 쿼리를 POST하는 것은 끔찍한 생각처럼 보입니다.

나는 클라이언트 측과 서버 측 캐싱의 조합이 이것을 효율적으로하는 데 도움이 될 것이라고 생각하고 있습니까? 아무도 아이디어가 없나요? 또는 베스트 프랙티스에 대한 팁이 있습니까? 감사.

답변

1

어쩌면 키를 누를 때마다 또는 최대 1 초 중 더 적은 횟수로 "최대 50 개의 옵션 요청"과 같은 작업을 수행 할 수 있습니다. 나는 일련의 게시물 요청이 좋은 해결책이 될 것이라고 생각한다.

서버에서 관련 쿼리가 여러 개 필요하므로 클라이언트에 한 번에 50 개만 보내는 경우에도 1000 개의 결과를 캐시하고 다음 쿼리에서 해당 결과의 하위 집합으로 이동하면 이익을 얻을 수 있습니다 .

0

모든 키 누르기 또는 잠시 멈춘 후에도 서버에 자주 쿼리하는 방법은 없습니다. 서버가 현재 문자열에 대한 제안뿐만 아니라 가장 가능성이 높은 다음 문자이기 때문에 클라이언트가 쿼리의 필요성을 피할 수있는 경우도 있습니다. 귀하의 주요 초점은 아마 이것의 서버 끝이 빠르고 효율적인지 확인하는 것입니다.

관련 문제