如何在类似查询中使用sqlite icu

How to use sqlite icu in like query

本文关键字:sqlite icu 查询      更新时间:2023-10-16

嗨,我修改了我的sql语句

CREATE VIRTUAL TABLE [v_fts] USING fts4 
(
 [title], 
tokenize=icu
)" 

但是当我试图插入数据时,我得到错误SQL logic error or missing database

编辑

我已经编译了sqlite与icu选项使用- DSQLITE_ENABLE_ICU

选项。

如何加载icu ?

我已经上传了shell代码与makefile在这里

http://www.2shared.com/file/8hxA3KIn/sqlite.html

all: release32
CFLAGS = -fPIC -O6 -DNO_TCL -DSQLITE_THREADSAFE=1 -DHAVE_USLEEP=1 -DSQLITE_ENABLE_FTS3=1  -O3 -Os  -I. -DSQLITE_ENABLE_ICU `/home/vivek/downloads/icu/des32/bin/icu-config --cppflags`
export LDFLAGS += -Wl,--start-group 
export LDFLAGS += /home/vivek/downloads/icu/des32/lib/libsicui18n.a
export LDFLAGS += /home/vivek/downloads/icu/des32/lib/libsicuuc.a
export LDFLAGS += /home/vivek/downloads/icu/des32/lib/libsicudata.a
export LDFLAGS += -lcrypt -ldl -lz -lrt  -lssl -lpthread   
export LDFLAGS += -Wl,--end-group
OBJ=sqlite3.o
    shell.o
    icu.o
release32: $(OBJ)
     g++34  -fno-exceptions -fno-operator-names ${CFLAGS} -DNDEBUG -m32  -static  $(OBJ) $(LDFLAGS) -o s.out
%.o:%.c
    gcc34 ${CFLAGS} -DNDEBUG -m32 -c    $<

my query are

CREATE VIRTUAL TABLE [vivek_fts] USING fts4 ( [title],tokenize=icu en_US)
insert into vivek_fts values("a");

根据全文搜索文档,您应该使用tokenize=icu en_US为例(指定ICU地区标识符)。

还应该加载ICU