Skip to content

Fuzzy Search for ENS Names

Fetch Domains with names similar to a query string, ranked by similarity. This example uses PostgreSQL’s pg_trgm extension, which provides the % operator for fuzzy matching and the similarity() function for ranking results. See Connect for setup.

SQL
SELECT
type,
canonical_name,
canonical_node,
owner_id,
similarity(canonical_name, 'reverse') as name_similarity,
id
FROM "ensindexer_0".domains
WHERE __canonicalNamePrefix % 'reverse'
AND canonical = true
ORDER BY name_similarity DESC
LIMIT 5;
Output
# typecanonical_namecanonical_nodeowner_idname_similarityid
1 ENSv1Domain reverse 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34 0xffffffffff52d316b7bd028358089bc8066b8f80 1
11155111-0xb6fb46e1458915dd828633d91e1df8e4c3f2d4dd-0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
2 ENSv2Domain reverse 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34 0xffffffffff52d316b7bd028358089bc8066b8f80 1
11155111-0x835f0b284e78cd3f358bcf6cba3b53809f09b79e-100753657518907091865523951670693454610893379027273088370152078482136467767296
3 ENSv1Domain addr.reverse 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2 0x26e5e80e8f36607ef401443fb34eea363c86e8f7 0.61538464
11155111-0xb6fb46e1458915dd828633d91e1df8e4c3f2d4dd-0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2

Output matches a point in time snapshot of ENSDb result from our "V2 Sepolia" Hosted ENSNode instance. Live output depends on the configuration of your ENSNode instance and also changes that may have happened in ENS since this point in time snapshot example response was captured.