The core of omni search is index table, like the google index, but a small scale within
The index table schema is like this
keyword | layer name | field name | times of search |
8765191 | all in one | project ID | 90 |
corona | all in one | implement agency | 75 |
corona | all in one | city name | 25 |
sb1 | | type | 17 |
federal | | funding source | 998 |
state | | funcing source | 232 |
Option 1:
1. upload to arcgis online or upload to portal on arcgis server as a feature table.
2. search keyword will just use Arcgis REST API is enough.
3. To update times of search on each user search, still use Arcgis REST api, but edit mode.
4. Arcgis server you have to authorize a folder with write privilege to let Arcgis REST api write times of search into index table.
Option 2:
1. Stand alone SQL table store on Mysql or SQL server
2. On IIS or apache, write a REST web service allow user to search keyword of this index table.
3. Each time user search a keyword, update the times of search by adding 1.
4. Overtime, I will know each keywords popularity.
5. Every time give user hint by place the most popular keywords on top.
6. Most popular keywords is always on top all the time.
This is hint when user type 'c'
C
corona (implement agency)
corona (city name)
carson (implement agency)
chino (city name)
Note: most popular, times of search most is always on top