Terminology
當您搜尋字元串的中間而不是開頭時,它叫什麼?
我正在努力提高我的詞彙量,以便更好地與我的開發人員同事交流。我們在站點中有幾個地方正在討論是否應該從開頭搜尋字元串
'running%'
與字元串中的任何位置'%running%
。我一直把中間搜尋稱為*“模糊”*,我意識到這是不正確的,因為模糊意味著改變單詞“run”、“runing”的形式
$$ sic $$, “符文”$$ sic $$. 搜尋字元串開頭和搜尋字元串中間的正確術語是什麼?
它被稱為*“非錨定搜尋模式”*,在 SQL 中看起來像這樣。
foo LIKE '%bar%'
如果
%
兩邊都缺少 a,則表示搜尋模式分別錨定到字元串的開頭或結尾。這種術語來自正則表達式世界。foo LIKE 'bar%'
你會說,“搜尋模式
bar%
錨定到字元串的開頭”。為了比較,PCRE 用
^
or$
標記錨定,它看起來像^bar
orbar$
。PCRE 需要使用標記進行顯式錨定,而 SQLLIKE
語句是隱式錨定的,並且需要顯式%
創建*“非錨定搜尋模式”*。附帶說明一下,您可以使用PostgreSQL中的類似東西使用三元組索引這些類型的表達式
pg_trgm