Inverted Index Multi-Match Feature

multi-match is a powerful query feature that allows users to search a single query string across multiple fields simultaneously. This is very useful in many real-world scenarios. For example, when a user on an e-commerce website types "durable backpack" into the search box, the system may need to search across multiple fields such as product_title, description, and category at the same time.

When executing a multi-match query, the system performs matching operations on each specified field in the background, then intelligently merges and sorts all results, ultimately returning a unified relevance-ranked list.

Feature Example

Data Preparation:

Test data table:

Table name: dbpedia_entities_1m Created at: 2025-07-03 12:07:32 Row count: 1,000,000 rows Storage size: 12.6 GB

Table structure:

  • id (string) - Entity ID
  • title (string) - Entity title
  • text (string) - Entity description text
  • vec (vector(float,1536)) - 1536-dimensional vector

Indexes already built:

Index NameIndex TypeTarget FieldAnalyzerSpecial Configuration
inverted_multi_match_idx_idINVERTEDidunicode-
inverted_multi_match_idx_titleINVERTEDtitleunicode-
inverted_multi_match_idx_textINVERTEDtextunicode-
idx_dbpedia_vec_1536VECTORvec-ef.construction=128, m=64

Feature Examples:

Single-Column Match

Search in the title field, requiring 'Paris Wisconsin Foster' to match over 67%

SELECT id, title FROM dbpedia_entities_1m WHERE multi_match ( title, 'Paris Wisconsin Foster', str_to_map('analyzer:unicode,minimum_should_match:67%') );

Three-Field Combined Search (ID + Title + Text)

Search across id, title, text three fields, requiring at least 3 query terms to match

SELECT id, title, text FROM dbpedia_entities_1m WHERE multi_match ( id, title, text, 'French deaf Avenue_Q Robert driver', str_to_map('analyzer:unicode,minimum_should_match:3') );

Result: 2 relevant records returned, with semantically accurate content matching.

id title text <dbpedia:Robert_Manzon> | Robert Manzon | Robert Manzon (12 April 1917 – 19 January 2015) was a French racing driver. He participated in 29 Formula One World Championship Grands Prix, debuting on 21 May 1950. He achieved two podiums, and scored a total of 16 championship points. At the time of his death, Manzon was the last surviving driver to have taken part in the first Formula One World Championship in 1950. <dbpedia:Robert_Benoist> | Robert Benoist | Robert Marcel Charles Benoist (20 March 1895 – 9 September 1944) was a French Grand Prix motor racing driver and war hero.