#SQLNGRAM
This is an implementation of IWordBreaker
that rather than breaking on words, breaks character ngrams, making it perfect for autocomplete search --
as opposed to the usual lazy tactic of LIKE '%word%' that folks fall into.
##Installation Knowing how much folks just love building C++, I've checked in a built version.
- Copy (./x64/Release/sqlngram.dll) to your SQL Server
BINNfolder - Run (./register.sql)
- Test
SELECT * FROM sys.dm_fts_parser (' "Hello World" ', 1, 0, 0)
##Samples
USE GLGLIVE
EXEC sys.sp_cdc_enable_db
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'COMPANY',
@role_name = NULL,
@supports_net_changes = 1
CREATE FULLTEXT CATALOG GLGLIVE_FULLTEXT
CREATE FULLTEXT INDEX ON dbo.COMPANY
(
PRIMARY_NAME
Language 1,
SECONDARY_NAME
Language 1
)
KEY INDEX PK_COMPANY ON GLGLIVE_FULLTEXT WITH STOPLIST = OFF, CHANGE_TRACKING AUTO
--wait for it ....
SELECT TOP 20
PRIMARY_NAME, *
FROM
dbo.COMPANY
JOIN FREETEXTTABLE (dbo.COMPANY, (PRIMARY_NAME, SECONDARY_NAME), 'Gerson') ft ON [KEY] = COMPANY_ID
ORDER BY RANK DESC
SELECT TOP 20
PRIMARY_NAME, *
FROM
dbo.COMPANY
JOIN FREETEXTTABLE (dbo.COMPANY, (PRIMARY_NAME, SECONDARY_NAME), 'Gerson Leh') ft ON [KEY] = COMPANY_ID
ORDER BY RANK DESC