[ 
https://issues.apache.org/jira/browse/SOLR-773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12727006#action_12727006
 ] 

Chris Male commented on SOLR-773:
---------------------------------

I have just added a patch which adds support to Solr for the multi-threaded 
spatial search I've added in LUCENE-1732.  The performance improvements made by 
the multi-threaded search reduces the time taken to filter 1.2 million 
documents from 3s to between 500-800ms.

In addition to the support for the improved spatial search, I have changed the 
query syntax supported by Solr for spatial searches.  The syntax now uses local 
params which contain any information specific to a spatial search.  An example 
of a search using the new syntax is:

q={!spatial_tier lat=50.0 long=4.0 radius=10}*:*

Also as part of the patch, I have removed the need for a specific 
DistanceCalcuatingComponent by changing the query produced by the 
SpatialTierQueryParserPlugin to a FilteredQuery, and by introducing the notion 
of a FieldValueSource.  

FieldValueSources, which can be registered with the new 
FieldValueSourceRegistry, are used to add arbitrary information to documents as 
they are being written by ResponseWriters.  Hence a DistanceFieldValueSource is 
created and registered by the SpatialTierQueryParserPlugin so that the 
distances calculated during the spatial search can be added the resulting 
documents.  This removes the need to do the adding of the distances in a 
special component.  A useful feature of the FieldValueSources is that they can 
be controlled through fl request parameter.  This means that for spatial 
search, the distances calculated do not necessary have to be included in the 
response.

The final contribution of the patch is since the new spatial search uses 
multiple-threads through an ExecutorService, it is necessary for Solr to have 
an ExecutorService that can be configured and managed.  Consequently the patch 
includes support for defining an ExecutorService in the solrconfig.xml.  The 
ExecutorService is then cleaned up when the SolrCore it belongs to, is closed.

I am intending on creating an example configuration over the next few days, 
which will also include some example data.


> Incorporate Local Lucene/Solr
> -----------------------------
>
>                 Key: SOLR-773
>                 URL: https://issues.apache.org/jira/browse/SOLR-773
>             Project: Solr
>          Issue Type: New Feature
>            Reporter: Grant Ingersoll
>            Assignee: Grant Ingersoll
>            Priority: Minor
>         Attachments: lucene-spatial-2.9-dev.jar, lucene.tar.gz, 
> SOLR-773-local-lucene.patch, SOLR-773-local-lucene.patch, 
> SOLR-773-local-lucene.patch, SOLR-773-local-lucene.patch, 
> SOLR-773-local-lucene.patch, SOLR-773-spatial_solr.patch, SOLR-773.patch, 
> SOLR-773.patch, spatial-solr.tar.gz
>
>
> Local Lucene has been donated to the Lucene project.  It has some Solr 
> components, but we should evaluate how best to incorporate it into Solr.
> See http://lucene.markmail.org/message/orzro22sqdj3wows?q=LocalLucene

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to