Users want to have one search box for everything and it needs to had autocomplete functionality. This presentation will go over how to create an attribute index table for searching across multiple tables and features in different databases. Then it will cover techniques applications can use the index table to implement autocomplete functionality.
16. Roll of Hay by Klearchos Kapoutsis
http://www.flickr.com/photos/klearchos/3824322183/
Attribution-NonCommercial License
17. Address & Owner
Database
Building Permit
Database
Assessment Database
Place Name Database
Subdivision Database
Roll of Hay by Klearchos Kapoutsis
http://www.flickr.com/photos/klearchos/3824322183/
Attribution-NonCommercial License
19. What needs to be in the table?
What to search for
Where to go once you find it
20. Search Index Table fields
Field*(ESRI)
Description
SearchText
The search term. The “correct”
answer. A perfect hit.
21. Search Index Table fields
Field*(ESRI)
Description
SearchText
The search term. The “correct”
answer. A perfect hit.
Workspace
The database the search term is in
22. Search Index Table fields
Field*(ESRI)
Description
SearchText
The search term. The “correct”
answer. A perfect hit.
Workspace
The database the search term is in
FeatureClass
The table in the database the
search term is in
23. Search Index Table fields
Field*(ESRI)
Description
SearchText
The search term. The “correct”
answer. A perfect hit.
Workspace
The database the search term is in
FeatureClass
The table in the database the
search term is in
IdField
The field in the table the search
term is in
24. Search Index Table fields
Field*(ESRI)
Description
SearchText
The search term. The “correct”
answer. A perfect hit.
Workspace
The database the search term is in
FeatureClass
The table in the database the
search term is in
IdField
The field in the table the search
term is in
Id
The record (or row) the the search term is in.
This is what the search should go to.
26. Search: 1234 Main Street
Match
Field
SearchText
Workspace
FeatureClass
IdField
Id
Description
1234 S Main Street Boulder
G:gis.sde
dbo.parcel
PIN
MKE11171971
27. Search: 1234 Main Street
Field
SearchText
Workspace
FeatureClass
IdField
Id
Description
1234 S Main Street Boulder
gisgisdata.sde
Zoom!
dbo.parcel
PIN
MKE11171971
28. Blue skies and silos by Matthew Rutledge
http://www.flickr.com/photos/rutlo/3872475221/
Attribution-NonCommercial License
Different Data Silos?
29. Boulder County Land Use Search Index
Theme
Example
Database
Parcel Number
157416001234
Assessor - CAMA
Address
1234 S Main Street
Assessor – CAMA
Owner
John Doe
Assessor – CAMA
Tax Account
R01234567
Assessor – CAMA
Building Permit
BP-13-0001
Land Use - Accela
Docket Number
SPR-13-0010
Land Use – Accela
Docket Name
Smith Residence
Land Use – Accela
Subdivision
Big Oak Meadows
GIS - ArcSDE
Mining Claim Name
Blue Bird Mine #2
GIS – ArcSDE
Geographic Names
Longs Peak
GIS - ArcSDE
30. Do the hard work to
make it simple
“Making something look simple is
easy; making something simple to
use is much harder — especially
when the underlying systems are
complex — but that’s what we
should be doing.”
https://www.gov.uk/designprinciples#fourth
32. Steps to update the index table
Load existing index
Load reference data (i.e. data your searching)
33. Steps to update the index table
Load existing index
Load reference data (i.e. data your searching)
Find reference data not in index
34. Steps to update the index table
Load existing index
Load reference data (i.e. data your searching)
Find reference data not in index
Add that data
35. Steps to update the index table
Load existing index
Load reference data (i.e. data your searching)
Find reference data not in index
Add that data
Search for index data not in the index (deleted)
36. Steps to update the index table
Load existing index
Load reference data (i.e. data your searching)
Find reference data not in index
Add that data
Search for index data not in the index (deleted)
Remove it
37. Steps to update the index table
Load existing index
Load reference data (i.e. data your searching)
Find reference data not in index
Add that data
Search for index data not in the index (deleted)
Remove it
Repeat for each dataset
38. One Search Index
Many Applications
Swiss Army Knife by AJ Cann
http://www.flickr.com/photos/ajc1/4663140532/
Attribution License
39. Now that you built your table…
… optimize your applications
42. Score Your Results
The Levenshtein distance between two
words is the minimum number of singlecharacter edits (insertion, deletion,
substitution) [including spaces] required
to change one word into the other.
1234 Ced
1234 N Cedar Brook Lane
Source: en.wikipedia.org/wiki/Levenshtein_distance
43. Statistics
Address Searches 85%
Owner Searches 5%
Parcel Number Searches 5%
Address Search Average 6.5 Characters
Address Search 1.6 Words
49% one word, 43% two words, 8% 3+ words