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, 'vitalik') as name_similarity,
id
FROM "ensindexer_0".domains
WHERE __canonical_name_prefix % 'vitalik'
AND canonical = true
ORDER BY name_similarity DESC, LENGTH(canonical_name) ASC
LIMIT 5;
Output
# typecanonical_namecanonical_nodeowner_idname_similarityid
1 ENSv1Domain vitalik.id 0xaf3232eb15e694ef5b9107cd2659c9ea75e7c74b59db776ce6be7df6d1131287 0x62f4706c61a7b3bf6db74faff7e5e48ac1e004a5 0.72727275
1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xaf3232eb15e694ef5b9107cd2659c9ea75e7c74b59db776ce6be7df6d1131287
2 ENSv1Domain vitalik.eth 0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835 0x220866b1a2219f40e72f5c628b65d54268ca3a9d 0.6666667
1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835
3 ENSv1Domain 🚀vitalik.eth 0x2eaf5dba5efa24eb33e59cfeb1ada63bce28966d82896f8358a5b7e0cd33c0fb 0x7dcb9d6e9ecfb03a275dc4864c812dd09a1768a2 0.6666667
1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0x2eaf5dba5efa24eb33e59cfeb1ada63bce28966d82896f8358a5b7e0cd33c0fb
4 ENSv1Domain ❤vitalik.eth 0xedad39bf146ed24b42e93f8579ae318df3bc925a38d66aef6af87ae91cb1b064 0x8cd59e8486a0d57bd95ce467f561f0d13293a0be 0.6666667
1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xedad39bf146ed24b42e93f8579ae318df3bc925a38d66aef6af87ae91cb1b064
5 ENSv1Domain vitalik😂.eth 0x4771060c6bcc732384b8a5969ef56d1b085d47f93bb67af828a1bfcacf00c79a 0x4c54c8c65789ed2d77b948f9aa9482daa6b4a582 0.6666667
1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0x4771060c6bcc732384b8a5969ef56d1b085d47f93bb67af828a1bfcacf00c79a

Output matches a point in time snapshot of ENSDb result from our Alpha 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.