Модераторы: javastic, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация скорости поиска по огромному файлу 
:(
    Опции темы
math64
Дата 4.4.2009, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Если файл специально преобразуется на компьютере, можно вместе с преобразованным файлом создать индексный файл для пойска. Для j2se это можно было бы сделать с помощью lucene, но lucene слишком сложна для j2me.
Без индексного файла лучше использовать байтовую кодировку. Для используемой кодировки включить файл описания из 1280 байт:
1. 512 байт, 256 char для преобразования в  Unicode
2. 256 байт для приведения к нижнему регистру
3. 256 байт для приведения к верхнему регистру
4. 256 байт для сортировки.
Если используется специальное пробразование файла, эти байты можно добавить в начало файла.
Искомая строка преобразуется в байтовую кодировку (это не быстро, но делается один раз перед поиском).
Чтобы не искать разделители, строки записывать в виде
<длина(1 или 2 байта)>:<строка из соответствующего числа байт>
PM   Вверх
drMIG
Дата 5.4.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 23.2.2009

Репутация: 1
Всего: 1



Если честно, не совсем понял, что подразумевается под байтовой кодировкой и преобразованием искомой строки в байтовую кодировку...
 smile 
PM MAIL   Вверх
math64
Дата 6.4.2009, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Под байтовой кодировкой я подразумевал кодировку в которой символ занимает 1 байт (cp1251, koi8-r), в отличие от utf8, где символ занимает переменное число байт или utf16, где число символов слишком большое, чтобы пользоваться массивами для приведения к верхнему или нижнему регистру.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0624 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.