2012-03-14 5 views
3

저는 각 문서에 대한 위도 경도 포인트가있는 20M 문서의 색인과 함께 Solr 3.4를 사용하고 있습니다. locLatLon이라는 solr.LatLonType을 사용하는 기존의 인덱싱 된 필드가 있습니다. 이 성능을 sol.GeoHashField와 비교하려고합니다. LocLatLon 필드에서 copyField로 채워지는 locLatLon_geohash라는 GeoHash 필드를 사용하는 스키마에 새 필드를 추가했습니다.Solr 3.4 GeoHash 필드 성능 문제 쿼리

http://solr_server:8983/solr/select/?q=*:*&fq={!bbox%20pt=34.1,-118.3574%20sfield=locLatLon_geohash%20d=10} 

: 나는 몇 가지 문서를로드 SOLR 지수의 샘플 부하를했고, 나는 두 필드로 검색 할 수 있었다

geohash와 쿼리 (I 실제 SOLR 서버 이름을 제거) 지리 공간 쿼리 :이 두 쿼리가 매우 비슷한 결과를 반환해야합니다 표면에

http://solr_server:8983/solr/select/?q=*:*&fq={!bbox%20pt=34.1,-118.3574%20sfield=locLatLon%20d=10} 

. 지형 공간 질의는 62ms가 걸리고 179k 문서를 반환합니다. geohash 쿼리는 34081ms를 소요하고 121k 문서를 반환합니다. 결과를 생성하는 데 걸린 시간이 걱정 스럽기 때문에 아직 반환 된 결과의 수에 대해서는별로 신경 쓰지 않습니다.

지오 해시에 대한 내용은 Solr을 쿼리하는이 방법이 매우 빠르지 만 실제로는 매우 느립니다.

debugQuery = on 쿼리 매개 변수를 추가하여 디버깅을 시도했지만 소스 코드를 파헤 치지 않고 사용할 수있는 것은 아무 것도 말해주지 않습니다. 아래는 결과 필터 쿼리만으로 Solr 결과의 미리보기입니다.

geohash와 디버깅 SOLR 출력 :

<arr name="parsed_filter_queries"> 
    <str>ConstantScore(frange(ghhsin(str(locLatLon_geohash),literal(9q5cfxwybswp))):[0 TO 10.0])</str> 
</arr> 

지리 디버깅 SOLR 출력 :

<arr name="parsed_filter_queries"> 
    <str>+locLatLon_0_coordinate:[34.01006796645071 TO 34.18993203354929] +locLatLon_1_coordinate:[-118.46600561233814 TO -118.24879438766185]</str> 
</arr> 

질문 (들) : 나는 계정 때 고려하지 않은 뭔가가 있나요 Solo에 GeoHash 유형 사용? 이 디버깅을 시도해야 할 다른 것이 있습니까?

답변

1

의견을 SOLR-2155 (으)로 읽으십시오. 첨부 된 패치는 전혀 적용되지 않았고 티켓은 아직 해결되지 않았지만 첨부 된 zip은 기능이 포함 된 플러그인이므로 실제로 SOLR을 패치 할 필요가 없습니다. 패치는 하나의 문서에서 여러 점의 색인을 생성 할 수 있도록 허용되지만 빠른 경계 상자 검색을 위해 geohash와 일치하는 접두사를 구현하는 것으로 보입니다.