Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/indoqa/solr-spatial-clustering
A Distance-based Solr spatial clustering plugin
https://github.com/indoqa/solr-spatial-clustering
distance indoqa-library java solr spatial-clusters
Last synced: 4 days ago
JSON representation
A Distance-based Solr spatial clustering plugin
- Host: GitHub
- URL: https://github.com/indoqa/solr-spatial-clustering
- Owner: Indoqa
- License: apache-2.0
- Created: 2015-01-28T11:03:20.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-10-19T07:50:47.000Z (about 1 year ago)
- Last Synced: 2024-04-09T12:01:39.925Z (7 months ago)
- Topics: distance, indoqa-library, java, solr, spatial-clusters
- Language: Java
- Homepage:
- Size: 592 KB
- Stars: 30
- Watchers: 10
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Indoqa Solr Spatial Clustering
This project offers a distance-based spatial clustering search component for Apache Solr.
It addresses the problem of reducing the amount of displayed markers on a map, described as [Spatial Clustering](https://wiki.apache.org/solr/SpatialClustering),
using a [distance-based](https://developers.google.com/maps/articles/toomanymarkers#distancebasedclustering) clustering algorithm based on [GVM](http://www.tomgibara.com/clustering/fast-spatial/).The search component aggregates all possible search results to a maximum amount of pins and adds this information to the standard search result representation. Like faceting, it can be used to query for a paged result slice (eg. for a result list) and a geographic overview of ALL search result items (spatial clusters) at once.
![Spatial Clustering](https://raw.githubusercontent.com/Indoqa/solr-spatial-clustering/master/spatial_clustering.png)
## Installation
Download the plugin jar from http://repo1.maven.org/maven2/com/indoqa/solr/spatial-clustering/7.5.0/spatial-clustering-7.5.0-jar-with-dependencies.jar and copy it into the `/lib` directory of your solr core.
## Configuration
### schema.xml
To enable spatial clustering, store the geo information (longitude and latitude) in your solr document:
```xml
```
Note: For legacy support of old Solr 4 `SortableDoubleField`, see branch `legacy/solr-4.3`
### solrconfig.xml
Define the search component and map field names for id, longitude and latitude, as well as the maximum allowed number of clusters:
```xml
id
longitude
latitude1000000
```
After that, add the spatial component to your query component chain:
```xml
spatial-clustering
```
## Usage
### Query Parameters
* `spatial-clustering=true` -> Enables spatial clustering
* `spatial-clustering.size=20` -> Optionally sets the maximum number of clusters (=pins)
* `spatial-clustering.min-result-count=100` -> Optionally sets the minimum number of documents required to do clustering### Result
Similar to facets, the computed clusters are added to the search result after the requested documents. There are two types of
result pins:* `single`: Represents a single document, including the id of the referenced document.
* `cluster`: Represents an aggregated pin covering more than one document, including the cluster size.
```xml
single
1
16.345518
48.285202
document-2313
cluster
3
16.2461115932
48.20259082573333
...
...```
## Build
### Requirements
* Apache Solr 7.5.0+
* Java 8+
### Build* Download the latest release
* run `maven clean install`