Internalizing location services with geo names
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Internalizing location services with geo names

  • 1,151 views
Uploaded on

Presented by John Marc Imbrescia, Senior Software Engineer, Etsy.com ...

Presented by John Marc Imbrescia, Senior Software Engineer, Etsy.com

Etsy recently chose to bring our location services in house. We used the open source GeoNames data set and built the tools we needed to use that data to allow members to select their location, show translations of place names, and to feed data into our search database for local, regional, and country based searches.

This talk will cover the implementation details and decisions we made along the way. How we mapped places from our old data set to the GeoNames data. The internal tools we built including a SOLR core for doing location place name autosuggest. Modifications to our Listings Search and Shop Search cores and the different ways we use location based search around the site both distance and region based using GeoNames hierarchy data.

There will also be a discussion about choosing to release some of the tools we built for this project open source and the decisions behind the non-search (display etc.) related elements of the project and the tools we chose for them and why.

More in: Education , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,151
On Slideshare
983
From Embeds
168
Number of Embeds
3

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 168

http://www.lucenerevolution.org 107
http://lucenerevolution.org 59
http://lucenerevolution.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Internalizing  loca.on  services  with  GeoNamesJohn Marc ImbresciaSenior Software Engineer - EtsyWednesday, May 1, 13
  • 2. Internalizinglocation serviceswith GeoNamesMay 2 2013Wednesday, May 1, 13
  • 3. The world’s online handmade marketplace.What is Etsy.com?Wednesday, May 1, 13
  • 4. What is Etsy.com?•20 million unique items•18 million daily item searches•800,000 sellers•28 million unique views per month•Developer blog: codeascraft.etsy.com•450 worldwide employeesWednesday, May 1, 13
  • 5. Our ProblemLocation names were only in English•Search based on English names•Display and search needed to bei18n friendly.•API limits and speed concernsmeant we needed a new solution.Wednesday, May 1, 13
  • 6. What do we use Location for?More than just search•Display•Local Search•No Mapping•No Bounding boxesWednesday, May 1, 13
  • 7. What do we use Location for?Item SearchWednesday, May 1, 13
  • 8. What do we use Location for?Item SearchWednesday, May 1, 13
  • 9. What do we use Location for?Item SearchWednesday, May 1, 13
  • 10. What do we use Location for?Location DisplayWednesday, May 1, 13
  • 11. How did this use to work?•Yahoo API•Every lookup was an API call•Stored user input and API response•Searched based on text match of API response•Not radius using lat/lon•No way to InternationalizeWednesday, May 1, 13
  • 12. What Services did Etsy need toInternalize location services?•Lookup - Autosuggest•Update - Scripts to refresh data•Display - Built into the php stack•Search - Existing, modified for new patternWednesday, May 1, 13
  • 13. What we have now•GeoNames as a data source•Feeds “geonamessuggest” Solr Core•Sqlite database for place name lookup•GeoName IDs used for local search•Leverages GeoName hierarchy data•Built in InternationalizationWednesday, May 1, 13
  • 14. How did we get here?•Mapped old locations to GeoNames•Added Geoname ID hierarchy to listing search•Pushed out Sqlite database to webservers•Slowly transitioned lookup and search services•Did side by side testing to look for anomaliesWednesday, May 1, 13
  • 15. What are the data types?GeoNamesWednesday, May 1, 13
  • 16. SchemasGeoNames•775k Entries•1.4m alternate spellingsWednesday, May 1, 13
  • 17. SchemasGeoNamesWednesday, May 1, 13
  • 18. GeonamessuggestOur autosuggest for place names•Localized•GeoIP•PopulationWednesday, May 1, 13
  • 19. GeonamessuggestSchemaWednesday, May 1, 13
  • 20. Distance and population come firstSort functionWednesday, May 1, 13
  • 21. GeonameId HierarachyLocal listing search•Each listing gets a hierarchy of geonameids•Local search is a filter on this ID•Fast & Reliable•Enables powerful functionality•Kept old data fieldsWednesday, May 1, 13
  • 22. GeonameId CollectionLocal listing search•Each listing gets a hierarchy of geonameids•Local search is a filter query on this ID•Fast & Reliable•Enables powerful functionality•Kept old data fieldsWednesday, May 1, 13
  • 23. CONFERENCE PARTYThe Tipsy Crow: 770 5th AveStarts after Stump The ChumpYour conference badge gets you in thedoorTOMORROWBreakfast starts at 7:30Keynotes start at 8:30CONTACTJohn Marc Imbrescia@thejohnmarcjohnmarc@etsy.comWednesday, May 1, 13