GEODI can also evaluate databases, i.e. structured data. Databases and their file information (including embedded) can be indexed (all tables and rows). With simple rules you can limit tables, rows or fields and set how rows are displayed to the user.
Table of Contents |
---|
The database is already structured information, how can GEODI be useful here?
GEODI provides a few important benefits:
GEODI allows you to search for structured information in your database and unstructured information in your files from a single point.
Table rows and files are linked with the information automatically extracted by recognizers. A person's petition is automatically matched with a previous license application.
If you have multiple databases, it is useless to have them structured unless their schemas are the same. GEODI prevents you from getting lost among data that is not compatible with each other.
How to Define Tabular Data
There are multiple ways:
File based ones such as SQLite, MDB, AccDB are indexed automatically. Rule files/DBMeta are considered if defined.
Excel files are not recognized as structured data by default. But we can do this with appropriate meta and settings.
With Project Wizard/Database source we can connect to all listed DBMSs. Rule files/DBMeta are taken into account if defined. In this structure, desired tables and columns can be selected and SQL statements can be written. Views are supported.
Settings made with Project Wizard/Database can be stored. A structure in *.xDeceConnection format is now recognized as file based. This structure has multiple benefits.
It is portable. This means you can use the same file in other GEODIs or the same GEODI in other projects.
It is secure. Depending on the system settings security level settings, the password/username inside the connection cannot be known.
Some DBMeta capabilities mentioned on this page only work this way.
How to Index?
Databases can consist of many tables. By default, GEODI traverses all tables and indexes all rows. System administrators can make definitions to restrict tables and rows through GEODI. If desired, "view(s)" can be defined and how GEODI will see the database can also be defined. Many different systems/formats such as Oracle, SQL Server, Postgres, Mysql, sqlite, access, shapefile, excel are supported.
...
Tables to be crawled must have a primary key. You can remove this constraint with a setting, but the crawl changes or versioning features will not work for tables without a primary field.
. If you do not want Geodi Table objects in the search results, but only records, DisableIndexTables should be set to True in the Enumerator Detail settings.
Files embedded in tables or linked within tables can also be included in indexing. How these features work is explained on this page.
You overcome the limited search capabilities offered by the software that creates the database
Changing Table Indexing Settings
You can change the default behavior with jsettings settings files under Settings\Reader\DBMeta. Within the same settings file you can apply different settings for different tables or projects as shown in the example.
...
Key | Description |
---|---|
WorkspaceName | WorkSpace(s) to which the settings will apply. |
TableFilter | Tables to which the settings will apply. |
ColumnFilter | Tables that contain the given columns (if - is given, tables that do not contain the relevant columns are considered). If more than one is given, the relationship is AND. |
How rows appear in GEODI
In databases, each record appears on a record-by-record basis. The default title is the first text column value. You can change this for each table individually using DisplayNameMacro. You can also use other columns in the title macro. Macro rules are given at the end of the page.
Code Block | ||
---|---|---|
| ||
{ "Defines":[ { "__type":"Geodi.Database.Meta.DBRowDisplayName, Geodi.Database", "DisplayNameMacro":"[TEXT4]/[TEXT2]-[TEXT3]" } ] } |
...
Indexing files embedded in tables
Geodi can scan files that have file paths in the database or are embedded in the database as blobs. This document explains how to make the necessary settings.
...
Code Block | ||
---|---|---|
| ||
{ "Defines":[ { "__type":"Geodi.Database.Meta.DBSubContent, Geodi.Database", "TableFilter":"TEST", "IDColumnMacro":"[OBJECTID]", "FileNameColumnMacro":"[FILE1]", "FileMemoColumn":"file2" } ] } |
Indexing Multiple Embedded Files in a Table
You can use the following meta to index files embedded in multiple columns in the same table.
Code Block | ||
---|---|---|
| ||
{ "Defines":[ { "__type":"Geodi.Database.Meta.DBSubContent, Geodi.Database", "TableFilter":"TQA", "IDColumnMacro":"[OBJECTID]_1", "FileNameColumnMacro":"[file1]", "FileMemoColumn":"file2" }, { "__type":"Geodi.Database.Meta.DBSubContent, Geodi.Database", "TableFilter":"TQA", "IDColumnMacro":"[OBJECTID]_2", "FileNameColumnMacro":"[dosya1]", "FileMemoColumn":"dosya2" } ] } |
Indexing what is given with File Path in Table
You can also index files specified by file links in a record.
...
Not supported for *.csv files.
Specifying a Primary Key Column
A primary column is required for each table for scanning and versioning changes. GEODI sets the ObjectID value by default. You can specify a different column with the definition described here.
...
Code Block | ||
---|---|---|
| ||
{ "__type":"Geodi.Database.Meta.DBPKey, Geodi.Database", "TableFilter":"tablo1", "KeyColumns":"id" }, |
Indexing the result of a SQL statement
You create a new table named NewName with the SQL key. The SQL statement must be compatible with the relevant DBMS.
...
Code Block | ||
---|---|---|
| ||
{ "Defines":[ { "__type":"Geodi.Database.Meta.DBSQL, Geodi.Database", "TableFilter":"TEST,TEST1", "ColumnFilter":"TEST.TARIH,TEST.OBJECTID,TEST1.OBJECTID,TEST.TAMS1", "NewName":"DENEME12", "SQL":"SELECT TEST.* FROM TEST,TEST1 WHERE TEST.OBJECTID=TEST1.TAMS2", "KeyColumns":"OBJECTID" } ] } |
Line Based Authorization
You can authorize based on Table, SQL or View row.
You can use user and/or GEODI groups in "PermitMacro" & "DenyMacro" for authorization.
You can also use [geodi:username] for the users you create.
If you want to write more than one user, group, you should start with = and use advanced macro. Simple macro definition can only be used to define a single group/user.
Usernames or groups must be generated from a column in a table (or SQL, or View).
Rows will be authorized in the table, and these authorizations will be used in files (child content).
...
Code Block | ||
---|---|---|
| ||
{ "Defines":[ { "__type":"Geodi.Database.Meta.DBRowPermission,Geodi.Database", "TableFilter":"test", "ColumnFilter":"BIRIMLER,BIRIMLER_TEST", "PermitMacro":'=new string[] {d.Get("BIRIMLER"),d.Get("BIRIMLER_TEST")}', "DenyMacro":"" }, ] } ________________________________________________________________________________________ { "Defines":[ { "__type":"Geodi.Database.Meta.DBRowPermission,Geodi.Database", "TableFilter":"test", "ColumnFilter":"BIRIMLER,BIRIMLER_TEST", "PermitMacro":'=new string[] {d["BIRIMLER"],d["BIRIMLER_TEST"]}', "DenyMacro":"" } ] } |
Specifying the Text/Text Result of a Record
This feature is used to change the GEODI search index. When the nomenclature given in the context is searched through GEODI, it finds all the contents in the table. With Content, we can select the search word of the column of a record, we can turn words without a column name into a search word with this feature. You can write and name more than one [Column Name] in Content. It allows to turn off and on the setting made in the Ignore state in DBmeta.
...
Code Block | ||
---|---|---|
| ||
{ "Defines":[ { "__type":"Geodi.Database.Meta.DBContent, Geodi.Database", "WorkspaceName":"otf_meta_testV1", "TableFilter":"TEST", "ColumnFilter":"TARIH", "Ignore":"False", "Content":"[TAMS2] ZAMAN [TEXT3]" } ] } |
...
Adjusting the Way Records Look
The html template you provide with the "TemplateName" key will determine the appearance of the records that meet the criteria. This template with ".html" extension should be under the Templates folder under the "DBMeta" file and the generated meta should be saved under the "DBMeta" folder.
...
Code Block | ||
---|---|---|
| ||
{ "Defines":[ { "__type":"Geodi.Database.Meta.DB_DLV_View, Geodi.Database", "TemplateName":"PortalAnkaraGeziveMesire.html" } ] } |
FieldIndex Settings (Limiting Searches by Column Name)
The default search covers all tables and all columns. To limit the search result based on columns, you should set FieldIndex. After setting "columnname:<your search phrase>", the criteria will be limited to the related column.
...
When this feature is active Words that are recognized in the database and fall in the KLV will be written next to the column in which they are found.
...
Sampling Data Discovery in Databases
By default, GEODI discovers all database contents. You can optionally sample and explore your database contents, so you can save on scanning time and storage space.
Project detail settings ContentReaderEnumerators → Veritabanınız → GenericSettings to add
"DB.SamplingMode":100
Tables/Selected Table/SQL query 100 records are randomly process.File-Based databases for use in Folder enumerator GenericSettings to add
"DB.SamplingMode":100
Such as *.xlsx , *.mdb, *.accdb from all types 100 records per table are random processed.
...
Make column names multilingual and define aliases
If you want, you should make the following definitions.
...
Code Block |
---|
<data name="att_{fieldname}" xml:space="preserve"> <value>{alias1}|{alias2}|{alias3}</value> </data> <data name="att_EnvanterNo" xml:space="preserve"> <value>Inventory Number|Inventory N|Inventory Position</value> </data> <data name="att_PersonName" xml:space="preserve"> <value>Name|Pname|Person Name</value> </data> |
...
Database Clients
Clients for the relevant database must be installed on the server where GEODI is located.
VTYS | Client |
---|---|
Oracle (OleDB) | Depending on the Oracle version to be connected, the appropriate Oracle Client download can be accessed by searching ODAC.... in Google. Oracle requires membership for download. After scanning the necessary steps, it creates a link for download. |
PostGres | No extra installation is required. |
Microsoft SQL Server | No extra installation is required. |
SqLite | No extra installation is required. |
Shape File | No extra installation is required. |
CSV File | No extra installation is required. |
KML File | No extra installation is required. |
Excel | Access Database Engine 2010 must be installed. https://www.microsoft.com/en-us/download/details.aspx?id=13255 |
ODBC | No extra installation is required. |
MS Access | Access Database Engine 2010 must be installed. https://www.microsoft.com/en-us/download/details.aspx?id=13255 |
SQLCE | No extra installation is required. |
SQL Express | No extra installation is required. |
Macros
You can write macros for values such as Document ID, File path. Macros allow you to solve situations where column values are directly insufficient. For which values macros can be used is specified in the related sections.
...
"DisplayNameMacro":'=d.Get<int>("DEGER")>-1?"Pozitif":"Negatif"'
Detail Information
Expand | ||
---|---|---|
| ||
|
...