Search in solr with a multi-valued location field

I can index multiple values ​​for a location type field in solr. The response to the modified schema.xml and indexed modified exampledocs looks like this: query:

  http://192.168.3.19:8983/solr/select?wt=json&indent=true&q=*:* 

Answer:

 { "id":"TWINX2048-3200PRO", "name":"CORSAIR XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail", "manu":"Corsair Microsystems Inc.", "price":185.0, "popularity":5, "inStock":true, "manufacturedate_dt":"2006-02-13T15:26:37Z", "payloads":"electronics|6.0 memory|3.0", "cat":["electronics","memory"], "store":["37.7752,-122.4232","37.7752,-122.4232","38.7752,-122.4232","39.7752,-122.4232"], "features":[ "CAS latency 2,\t2-3-3-6 timing, 2.75v, unbuffered, heat-spreader"]}, { "id":"VS1GB400C3", "name":"CORSAIR ValueSelect 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - Retail", "manu":"Corsair Microsystems Inc.", "price":74.99, "popularity":7, "inStock":true, "manufacturedate_dt":"2006-02-13T15:26:37Z", "payloads":"electronics|4.0 memory|2.0", "cat":["electronics","memory"], "store":["37.7752,-100.0232","37.7752,-122.4232","38.7752,-122.4232","39.7752,-122.4232"]}, { "id":"VDBDB1A16", "name":"A-DATA V-Series 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - OEM", "manu":"A-DATA Technology Inc.", "popularity":0, "inStock":true, "manufacturedate_dt":"2006-02-13T15:26:37Z", "payloads":"electronics|0.9 memory|0.1", "cat":["electronics","memory"], "store":["45.17614,-93.87341","37.7752,-122.4232","38.7752,-122.4232","39.7752,-122.4232"], "features":[ "CAS latency 3,\t 2.7v"]}, { 

Witch means that the data is stored correctly. If I request the first saved geolocation, it works fine, but if I look for the third or fourth geolocation solr, the result will not be obtained. If I run the following query:

 http://localhost:8983/solr/select?wt=json&indent=true&q=*:*&fq={!geofilt%20pt=45.17614,-93.87341%20sfield=store%20d=5} 

I get the correct answer:

  {
         "id": "VDBDB1A16",
         "name": "A-DATA V-Series 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - OEM",
         "manu": "A-DATA Technology Inc.",
         "popularity": 0,
         "inStock": true,
         "manufacturedate_dt": "2006-02-13T15: 26: 37Z",
         "payloads": "electronics | 0.9 memory | 0.1",
         "cat": ["electronics", "memory"],
         "store": ["45.17614, -93.87341", "37.7752, -122.4232", "38.7752, -122.4232", "39.7752, -122.4232"],
         "features": [
           "CAS latency 3, \ t 2.7v"]},
       {

 But if the query is:

     http: // localhost: 8983 / solr / select? wt = json & indent = true & q = *: * & fq = {! geofilt% 20pt = 38.7752, -122.4232% 20sfield = store% 20d = 50}

I will not get any results. Is this a solr problem? Any solution?

+4
source share
3 answers

An old question, but it is still in many Google search results, so here is some additional information for multi-valued coordinate fields:

You can add the following to your schema.xml:

 <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory" distErrPct="0.025" maxDistErr="0.000009" units="degrees" /> 

Then use the location_rpt field for the multi-valued coordinate field and take advantage of all the benefits of Solr 4's new spatial search .

You also need to add a JTS jar to your solr class path if you are using a custom ContextFactory spatial data file. If you remove this parameter from the fieldType definition, multi-valued fields will still work, but other additional functions will not.

+5
source

According to the ticket (SOLR-2154) referenced by vuky in d whelan, this should be in all new releases of Solr. This was fixed by ticket SOLR-3304 ( https://issues.apache.org/jira/browse/SOLR-3304 ), which was marked as fixed on September 17, 2012.

I can’t find the specific issue from which it should work, but I believe that all released after May 2013 should work if I read the comments on the tickets.

+1
source
0
source

Source: https://habr.com/ru/post/1385541/


All Articles