]> git.openstreetmap.org Git - nominatim.git/commitdiff
add develop section to documentation
authorSarah Hoffmann <lonvia@denofr.de>
Mon, 12 Feb 2018 18:51:02 +0000 (19:51 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Sat, 24 Feb 2018 22:24:25 +0000 (23:24 +0100)
docs/CMakeLists.txt
docs/develop/overview.md [new file with mode: 0644]
docs/mkdocs.yml

index e8596e49f81818314e61333b1a5751fdf84a1df0..d2fe03d018729981128ed7a392949f128229fe81 100644 (file)
@@ -8,6 +8,7 @@ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/appendix)
 
 ADD_CUSTOM_TARGET(doc
    COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/admin ${CMAKE_CURRENT_BINARY_DIR}/admin
+   COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/develop ${CMAKE_CURRENT_BINARY_DIR}/develop
    COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/index.md ${CMAKE_CURRENT_BINARY_DIR}/index.md
    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Centos-7.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Centos-7.md
    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Ubuntu-16.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Ubuntu-16.md
diff --git a/docs/develop/overview.md b/docs/develop/overview.md
new file mode 100644 (file)
index 0000000..179eeb0
--- /dev/null
@@ -0,0 +1,24 @@
+# Basic Architecture
+
+Nominatim provides geocoding based on OpenStreetMap data. It uses a Postgresql
+database as a backend for storing the data.
+
+There are three basic parts to Nominatim's architecture: the data import,
+the address computation and the search frontend.
+
+The __data import__ stage reads the raw OSM data and extracts all information
+that is useful for geocoding. This part is done by osm2pgsql, the same tool
+that can also be used to import a rendering database. It uses the special
+gazetteer output plugin in `osm2pgsql/output-gazetter.[ch]pp`. The result of
+the import can be found in the database table `place`.
+
+The __address computation__ or __indexing__ stage takes the data from `place`
+and adds additional information needed for geocoding. It ranks the places by
+importance, links objects that belong together and computes addresses and
+the search index. Most of this work is done in Pl/pqSQL via database triggers
+and can be found in the file `sql/functions.sql`.
+
+The __search frontend__ implements the actual API. It takes queries for
+search and reverse geocoding queries from the user, looks up the data and
+returns the results in the requested format. This part is written in PHP
+and can be found in the `lib/` and `website/` directories.
index d647dd8717a9fd9984d63ea8cf16083275a8ddfc..b0aee5d07fa714238661b2c8b024498455aa2cfe 100644 (file)
@@ -10,6 +10,8 @@ pages:
         - 'Importing and Updating' : 'admin/Import-and-Update.md'
         - 'Migration from older Versions' : 'admin/Migration.md'
         - 'Troubleshooting' : 'admin/Faq.md'
+    - 'Developers Guide':
+        - 'Overview' : 'develop/overview.md'
     - 'Appendix':
         - 'Installation on CentOS 7' : 'appendix/Install-on-Centos-7.md'
         - 'Installation on Ubuntu 16' : 'appendix/Install-on-Ubuntu-16.md'