Обход полнотекстового поиска Android SQLite для азиатского текстаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Обход полнотекстового поиска Android SQLite для азиатского текста

Сообщение Anonymous »

Я читал множество сообщений с вопросом, можно ли выполнять полнотекстовый поиск на основе SQLite в Android, и во всех ответах указывается, что встроенный SQLite в Android не поддерживает собственный токенизатор. Токенизатор по умолчанию учитывает слова, разделенные пробелом или другими знаками, но для азиатских слов (например, китайского) требуется специальный токенизатор, но Android не позволяет добавлять собственный токенизатор.

сообщения, которые я читал, были много лет назад. Есть ли какие-либо обновления в последних версиях Android? Я просто искал и не нашел ответа.

И я думаю, как обойти проблему. Возможно ли, что перед ВСТАВКОЙ кортежей в виртуальную таблицу FTS3/FTS4 для индексации я искусственно добавляю пробелы между каждым словом, чтобы токенизатор по умолчанию мог рассматривать каждое азиатское «слово» как английское слово? При выполнении запроса строка запроса делает то же самое: добавляются искусственные пробелы.

Я пробовал в Linux, похоже, это работает. Например, если мне это нравится, полнотекстовый поиск подходит для азиатских текстов:

Код: Выделить всё

CREATE VIRTUAL TABLE mail USING fts3(subject, body);
INSERT INTO mail(docid, subject, body) VALUES(4, 'software feedback', '这 个 Bug 还 没 有 解 决');
SELECT * FROM mail WHERE body MATCH '没 有 解 决';
Но есть сомнения в том, что это будет стоить гораздо больше места для хранения файла базы данных, поскольку в нем содержится двойное количество символов с пробелами. Похоже, что в так называемой «виртуальной таблице» хранится не только сгенерированный индекс, но и исходный текст.

Подробнее здесь: https://stackoverflow.com/questions/332 ... asian-text
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»