Full-text Search

MetaCroc logo

Full-text Search #

Overview #

The goal is to provide data engineers and business analysts with a feature to find metadata effectively. The search is built on two pillars: field relevance (where to look) and match quality (how to look).

Operators #

User can write part of searched word, the whole word or several words. Each word is included to algorithm. It is also possible touse following operators:

OperatorDescription
+termmandatory occurrence of a word
-termstrict exclusion of a word
“term”searching of exact term

Scoring Algorithm (Ranking) #

The final score of an element is determined by the product of Metadata Weights and the Match Coefficient.

A. Metadata Field Weights #

FieldWeightMeaning
Technical name10Primary identifier (e.g., STG_SALES_D).
Business name8Human-readable name for analysts.
Technical column name2Primary column identifier.
Business column name2Human-readable column name for analysts.
Description5Official documentation of the element’s purpose.
Comment5Informal notes and additions.
Path (Folder)3Contextual location within the project.
Responsible Person2Owner identification.

Match Quality Coefficients #

Match TypeCoefficientExample (searching for “Acc”)
Exact Match1.0Acc
Prefix0.7Account
Infix0.3GL_Account

Multi-word Search Logic #

When multiple words are entered (e.g., Customer Invoice STG), the system calculates a score for each term separately and applies final modifiers:

Relevance Calculation Formula #

Search evaluation

  1. Completion Bonus: The ratio of found words to searched words. (Ensures that an element containing all words always ranks higher than an element with only one, even if that one is an exact match).
  2. Proximity Bonus (1.5x): A bonus applied if the searched words are located right next to each other in the text.
  3. Cross-field Search: Allows combining technical and business parameters (one word found in the technical name, another in the description).

Evaluation Example #

Search Query: Client Address

ElementFound inMatch TypeCalculationScore
Table CLIENT_ADDRTech. nameStart-with10 x 0.7 x 2 (words)14.0
Table D_CLIENTTech. name / Desc.Start / Exact(10 x 0.7) + (5 x 1.0)12.0
API LOG_ADDRTech. nameInfix10 x 0.3 x 0.5 (bonus)1.5