Bug 31652 ("Add geo-search") implements indexing geographic coordinates (034s,t) in Elasticsearch to enable searching for records referring to specific coordinates. Some records (or authorities) will refer to whole areas, which MARC encodes as north/south/east/westmost points. Since elasticsearch supports indexing shapes, not just points, it would be a nice improvement to be able to index this as well.
Created attachment 171877 [details] [review] Bug 37985: Extend geo-search to support areas, not just points (MARC 034 subfields defg)
Created attachment 171878 [details] [review] Bug 37985: Extend geo-search to support areas, not just points (MARC 034 subfields defg)
Test plan: 1. Run the following code to add geolocation data to a book: ``` use C4::Biblio; use Koha::Biblios; # Add the bounding box of Austria to a biblio { my $biblionumber = 139; my $biblio = Koha::Biblios->find($biblionumber); my $framework = $biblio->frameworkcode; my $record = $biblio->metadata->record; my @fields; $fields[0] = MARC::Field->new('034','','', 'd' => 9.530833, 'e' => 17.160556, 'f' => 49.020556, 'g' => 46.3725, ); $record->append_fields(@fields); C4::Biblio::ModBiblio($record, $biblionumber, $framework); } ``` 2. Go to OPAC /cgi-bin/koha/opac-search.pl?advsearch=1&idx=geolocation&do=Search&q=lat%3A48.19538740833338+lng%3A16.30711931230611+distance%3A120km, observe no results 3. Apply the patch 4. Perform the required DB migration: `alter table search_field MODIFY COLUMN type enum('','string','date','number','boolean','sum','isbn','stdno','year','callnumber','geo_point', 'geo_shape');` 5. Rebuild the index: `koha-elasticsearch --rebuild -r kohadev` 6. Restart Koha: `koha-plack --restart kohadev` 7. Retry /cgi-bin/koha/opac-search.pl?advsearch=1&idx=geolocation&do=Search&q=lat%3A48.19538740833338+lng%3A16.30711931230611+distance%3A120km, see a result pop up.