]> git.openstreetmap.org Git - nominatim.git/commitdiff
new word table layout for icu tokenizer
authorSarah Hoffmann <lonvia@denofr.de>
Tue, 20 Jul 2021 08:27:06 +0000 (10:27 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 28 Jul 2021 09:31:47 +0000 (11:31 +0200)
The table now directly reflects the different token types.
Extra information is saved in a json structure that may be
dynamically extended in the future without affecting the
table layout.

lib-sql/tokenizer/icu_tokenizer_tables.sql [new file with mode: 0644]
nominatim/tokenizer/legacy_icu_tokenizer.py

diff --git a/lib-sql/tokenizer/icu_tokenizer_tables.sql b/lib-sql/tokenizer/icu_tokenizer_tables.sql
new file mode 100644 (file)
index 0000000..13e1bdb
--- /dev/null
@@ -0,0 +1,15 @@
+DROP TABLE IF EXISTS word;
+CREATE TABLE word_icu (
+  word_id INTEGER,
+  word_token text NOT NULL,
+  type text NOT NULL,
+  info jsonb
+) {{db.tablespace.search_data}};
+
+CREATE INDEX idx_word_word_token ON word
+    USING BTREE (word_token) {{db.tablespace.search_index}};
+GRANT SELECT ON word TO "{{config.DATABASE_WEBUSER}}";
+
+DROP SEQUENCE IF EXISTS seq_word;
+CREATE SEQUENCE seq_word start 1;
+GRANT SELECT ON seq_word to "{{config.DATABASE_WEBUSER}}";
index 6d3d11c163eed81995b8c2c7c71f7870de5395ec..59ad09aab86df60ac7afb5566668766e0cedb8da 100644 (file)
@@ -152,7 +152,7 @@ class LegacyICUTokenizer:
         """
         with connect(self.dsn) as conn:
             sqlp = SQLPreprocessor(conn, config)
-            sqlp.run_sql_file(conn, 'tokenizer/legacy_tokenizer_tables.sql')
+            sqlp.run_sql_file(conn, 'tokenizer/icu_tokenizer_tables.sql')
             conn.commit()
 
             LOG.warning("Precomputing word tokens")