2013-06-20 5 views
-1

몇 가지 간단한 질문 :단지 구글 앱 엔진의 검색

(1) 왜 검색 서비스를 사용하여 둘 이상의 자산에 필터를 불평등,하지만 난 단지 불평등 할 수있는 것을 할 수있는 그 것이다 데이터 저장소를 쿼리 할 때 최대 하나의 속성 만 필터링합니까? 이 제한은 한 서비스에는 있지만 다른 서비스에는 존재하지 않는 것은 이상한 것 같습니다.

(2) Google 앱 엔진 검색을 사용하여 매우 많은 개체 (수천 또는 수십, 어쩌면 그 이상)를 쿼리합니다. 나는 많은 불평등을하려고 계획하고있다. 예를 들면, x보다 먼저 "시간이 생겼다", "가격이 y보다 크다", "등급이 z보다 작다", a와 b 사이의 위도, "경도"가 c와 d 등이다. 많은 필터와 잠재적으로 비싼 것처럼 보입니다. App Engine Search가 이에 적합한 솔루션입니까?

고마워요.

답변

1

1) SearchService는 기본적으로 데이터 저장소를 사용할 수없는 일들을 수행하는 API를 제공합니다. 데이터 저장소에서 수행 할 수 있다면 SearchService가 실제로 필요하지는 않습니다. 매우 만족스러운 대답은 아니지만 일반적인 RDBMS로 수행 할 수있는 일반적인 작업의 대부분은 Search API를 사용할 수있을 때까지는 실제로 가능하지 않았습니다.

2) 조금 더 어렵습니다. 현재 검색 API는 오류 조건을 잘 처리하지 못합니다. 일반적으로 의미있는 메시지가 없으면 SearchServiceException이 발생합니다. 팀은 지난 1 년 정도 동안이 문제를 개선 한 것으로 보이지만,이 공간의 수정 사항은 매우 느리게 진행된 것으로 보입니다. 내가 제기 한 티켓에서 실패는 대개 쿼리를 너무 오래 실행 한 결과입니다. 이것은 보통 너무 복잡한 쿼리로 표시됩니다. 실제로 쿼리 문자열을 조합하고 검색 요청에 적용한 매개 변수를 사용하여 쿼리를 상당히 조정할 수 있습니다. 단점은 완전히 검은 색 상자라는 점입니다. 쿼리 최적화에 대한 가이드 나 도구를 보지 못했습니다. 그들이 실패하면 그들은 실패합니다.

AppEngine 검색 API는 사용자가 설명하는 문제를 해결하기 위해 설계되었으므로 사용자의 판단이 어려울 수 있습니다. 몇 가지 샘플 쿼리를 설정하고 테스트 환경에 배포하여 일반적인 데이터 세트에도 기본적으로 작동하는지 확인할 수 있습니다. 나는 당신이 준 예제에서 잘 작동 할 것으로 기대한다. 대규모 제작 환경에서 유사한 검색을 성공적으로 실행했습니다.

+0

감사합니다. Nick. 실행중인 검색의 종류와 레코드의 수/스키마 등에 대해 좀 더 자세히 설명해 주시겠습니까? – mickeybob

관련 문제