Как использовать sqlite icu в подобном запросе - PullRequest
2 голосов
/ 05 июля 2011

привет Я изменил свой SQL-оператор как

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

Но когда я пытаюсь вставить данные, я получаю сообщение об ошибке SQL logic error or missing database

Редактировать

Я скомпилировал sqlite с опцией icu, используя опцию - DSQLITE_ENABLE_ICU

.

как загрузить icu?

Я загрузил шелл-код с 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    $<

мой запрос

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

1 Ответ

1 голос
/ 05 июля 2011

В соответствии с полнотекстовой документацией поиска вы должны использовать, например, tokenize=icu en_US (укажите идентификатор локали ICU).

Кроме того, у вас должен быть загружен ICU.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...