Searching Sucks.mapbutcher@mapbutcher.com
Having to search means you can’t find something easily
mapbutcher@mapbutcher.com
All good applications have a facility to search
mapbutcher@mapbutcher.com
Some are better than others….
mapbutcher@mapbutcher.com
Your whole application suffers if your users can’t find something
easily.
mapbutcher@mapbutcher.com
So here are some of my tips on searching
mapbutcher@mapbutcher.com
In many cases we search for things on maps
mapbutcher@mapbutcher.com
…we’re searching to locate something.
mapbutcher@mapbutcher.com
Rule #1. Make the things on your maps searchable.
mapbutcher@mapbutcher.com
We often use textual information to perform these searches..
mapbutcher@mapbutcher.com
An address, place name, asset number, description, anything…
mapbutcher@mapbutcher.com
In many cases the information your users have is unstructured
mapbutcher@mapbutcher.com
Sometimes they don’t even know what they’re looking for!
mapbutcher@mapbutcher.com
Rule #2. Avoid structured search interfaces.
mapbutcher@mapbutcher.com
We don’t like waiting!
mapbutcher@mapbutcher.com
Google, once again, sets a certain expectation!
mapbutcher@mapbutcher.com
Rule #3. Slow searches just don’t cut the mustard.
mapbutcher@mapbutcher.com
It’s nice to get a helping hand while you search, tell me things I might
want to find.
mapbutcher@mapbutcher.com
Rule #4. Predict & Sort
mapbutcher@mapbutcher.com
When there’s lots of information then help your users
mapbutcher@mapbutcher.com
Guide your users, use a type and group on the basis of this type
mapbutcher@mapbutcher.com
Rule #5. Cluster
mapbutcher@mapbutcher.com
If you normally provide a search facility in your application by
writing a SQL statement then you may want to listen carefully to the
next bit.
mapbutcher@mapbutcher.com
Full Text Searching can help.
mapbutcher@mapbutcher.com
In a full text search, the search engine examines all of the words in every stored document as it tries to match search words supplied by the
user.
mapbutcher@mapbutcher.com
Enter Solr
mapbutcher@mapbutcher.com
You can’t talk about Solr before talking about Lucene
mapbutcher@mapbutcher.com
Lucene = Apache Open Source High Performance Text Search Engine
mapbutcher@mapbutcher.com
Lucene = 100% Java
mapbutcher@mapbutcher.com
Lucene = Incredibly Fast Indexing (This is where you might write
some SQL)
mapbutcher@mapbutcher.com
Indexing = Stuffing the stuff you’re interested in, into documents that
Lucene loves.
mapbutcher@mapbutcher.com
So what is Solr?
mapbutcher@mapbutcher.com
Sits on top of Lucene
mapbutcher@mapbutcher.com
Provides a RESTful interface over Lucene goodness
mapbutcher@mapbutcher.com
Why is Solr important for Spatial Applications?
mapbutcher@mapbutcher.com
Solr does all the things your application needs to do in terms of
searching.
mapbutcher@mapbutcher.com
Here are just a few…
mapbutcher@mapbutcher.com
Full Text Search & Sorting
mapbutcher@mapbutcher.com
http://localhost:8080/Solr/select?q=Manly
mapbutcher@mapbutcher.com
mapbutcher@mapbutcher.com
Hit Highlighting
mapbutcher@mapbutcher.com
Faceting
mapbutcher@mapbutcher.com
http://localhost:8080/Solr/select?indent=on&version=2.2&q=great&fac
et=true&facet.field=poi_category
mapbutcher@mapbutcher.com
mapbutcher@mapbutcher.com
Database Integration
mapbutcher@mapbutcher.com
and….
mapbutcher@mapbutcher.com
Solr has some basic spatial goodness
mapbutcher@mapbutcher.com
Points only at the moment
mapbutcher@mapbutcher.com
http://localhost:8080/Solr/select/?q=Camp&fq={!type=geofilt}&sfield=c
oords&pt=-45.56862830,167.61154830&d=53
mapbutcher@mapbutcher.com
mapbutcher@mapbutcher.com
mapbutcher@mapbutcher.com
Don’t make it hard for your users to find your data!
thanks