Solr은 최근 Java Topology Suite 라이브러리를 통해 상당히 향상 된 지리 정보 검색 기능을 제공합니다. Solr documentation는 q는 검색의 비 지리 부분이 될 것입니다
&q=*:*&fq={!geofilt sfield=location}&pt=41.38,2.18&d=5
는 sfield은 당신의 위치 필드, 당신은 어떤 시점, 예를 들면의 거리 d와 아무것도 찾을 수있는 거리 필터를 사용하는 예제가 있습니다 , pt는 포인트입니다 (lat/lon에 있어야하며 위의 예에서는 Barcelona 임). d는 거리 필드입니다. d 매개 변수의 이미지를 얼마나 멀리 볼 수 있는지 속성을 사용할 수 있습니다.
더 가까운 물건을 강조 표시하려면 거리별로 정렬 할 수있는 측지 기능이 있습니다.
사용할 수있는 또 다른 방법은 공간 데이터베이스를 사용하고 위치 데이터를 위치 필드로 저장하는 것입니다. Postgres/Postgis의 예제로 http://postgis.net/docs/ST_DWithin.html 함수를 사용할 수 있습니다.이 함수를 사용하면 어느 정도 거리 내의 모든 것을 검색 할 수 있습니다. Postgres/GIS는 spatial indexing에 R-tree 인덱스를 사용하므로 매우 빠르고 효율적으로 검색 할 수 있습니다. 또한 속성 부분에 대해 전체 텍스트 검색 기능이 뛰어납니다.
select * from images where ST_DWithin(point, st_setsrid(st_makepoint(2.1, 41.38), 4326), 5);
오라클과 SQL Server (그리고 그보다 다소 적지 만 MySQL의 경우)와 비슷한 기능을 제공 할 수 있습니다. 이 접근법은 Solr 접근 방식보다 더 복잡해 보일 수 있습니다.이 지점의 거리 d 이내에서이 속성과 일치하는 모든 이미지를 lat/lon으로 검색하는 경우 SOLR은 원하는 것을 확실히 수행하지만 원하는 경우 향후 고급 공간 기능을 고려하고 다른 데이터베이스 기능을 활용하려면 공간 데이터베이스 접근 방식을 고려해야합니다.
solr로 제한되었거나 다른 해결책이 가능합니까? –
다른 데이터 저장소를 사용해 볼 때 열려 있습니다. – sevenFLiP