Terminology

當您搜尋字元串的中間而不是開頭時,它叫什麼?

  • May 5, 2018

我正在努力提高我的詞彙量,以便更好地與我的開發人員同事交流。我們在站點中有幾個地方正在討論是否應該從開頭搜尋字元串'running%'與字元串中的任何位置'%running%

我一直把中間搜尋稱為*“模糊”*,我意識到這是不正確的,因為模糊意味著改變單詞“run”、“runing”的形式

$$ sic $$, “符文”$$ sic $$. 搜尋字元串開頭和搜尋字元串中間的正確術語是什麼?

它被稱為*“非錨定搜尋​​模式”*,在 SQL 中看起來像這樣。

foo LIKE '%bar%'

如果%兩邊都缺少 a,則表示搜尋模式分別錨定到字元串的開頭或結尾。這種術語來自正則表達式世界。

foo LIKE 'bar%'

你會說,“搜尋模式bar%錨定到字元串的開頭”。

為了比較,PCRE 用^or$標記錨定,它看起來像^baror bar$。PCRE 需要使用標記進行顯式錨定,而 SQLLIKE語句是隱式錨定的,並且需要顯式%創建*“非錨定搜尋​​模式”*。

附帶說明一下,您可以使用PostgreSQL中的類似東西使用三元組索引這些類型的表達式pg_trgm

引用自:https://dba.stackexchange.com/questions/187658