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