sqlite3 支持中文全文搜索

 

sqlite3 自带了全文搜索的功能FT3和FT4,但很遗憾的是不支持中文分词。
在github上找到一个支持中文分词的类库,主要思路就是将自定义的分词器嵌入到sqlite中,项目地址:https://github.com/haifengkao/SqliteSubstringSearch
核心代码如下:

//获取分词器
get_character_tokenizer_module(&ptr);

// register character tokenizer, note that you need to register it everytime the database is opened
registerTokenizer(db, token_name, ptr);

注册好之后就可以使用match语法进行中文全文搜索了

SELECT * FROM docs WHERE docs MATCH '"lin"';

该项目中使用的中文分词器算法为MMSEG

This entry was posted in Mac OS X.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">