![]() |
Добавить Архитектура Запросы сейчас Цифры и факты FAQ Кнопка поиска Сделать стартовой |
![]() |
Программа построения общего сегмента частотности лексем indexer_shmbuild vs/1.0
Статус этого документа.
Этот документ описывает принципы работы, процедуру установки и настройки программы построения общего сегмента памяти частотности лексем indexer_shmbuild поисковой системы Turtle. Документ предназначен для служебного использования. Документ подразумевает предварительное знакомство с протоколом обмена компонент поисковой системы Search System Transfer Protocol и должен рассматриваться в совокупности с ним.Copyright Notice
Copyright © Stack Technologies Ltd. (2001). All Rights Reserved.
Содержание.
1. Назначение. Программа indexer_shmbuild предназначена для построения общего сегмента памяти (shared memory), содержащего информацию о частотности поисковых лексем и размере данных, хранимых в базе данных поисковых процессоров (SP). Эти данные в дальнейшем используют оптимизаторы запросов для оценки времени выполнения различных возможных схем поискового запроса и выбора наиболее оптимальной схемы. Программа может также использоваться для загрузки уже построенного сегмента памяти при перезапуске системы или для его выгрузки из памяти компьютера. 2. Принципы работы. При запуске программа indexer_shmbuild зачитывает указанный в командной строке текстовый файл лексем, содержащий требуемые частотности слов, производит необходимую инициализацию буфера общей (shared) памяти и ее заполнение требуемыми значениями. После этого, программа производит сохранение двоичного образа памяти на диск для его дальнейшего использования при загрузке ОС.
- 1. Назначение.
- 2. Принципы работы.
- 3. Установка.
- 4. Настройка и запуск.
- 5. Функции библиотеки.
Подразумевается, что данные зачитываемого текстового файла и данные файла стоп-слов (если используются) имеют сортированную структуру. Такие данные могут быть приготовлены с помощью программы indexer_export, которая должна быть запущена на каждом элементе базового кластера индекса SP, и результаты работы таких запусков должны быть объеденены в один текстовый файл лексем. Подобную процедуру следует проделивать один раз в разумный интервал времени (например месяц), за который частотность слов в базовом индексе изменяется не столь значительно, чтобы вносить существенное влияние в оценку скорости выполнения поискового запроса. 3. Установка. Исходные тексты программы находятся в дистрибутиве в src/indexer/indexer_shmbuild.c. Программа может быть собрана вместе с другими компонентами поисковой системы Turtle посредством выполнения команды make в корне дистрибутива исходных текстов. Для сборки программы отдельно, необходимо сначала изготовить библиотеку libturtle.a, а затем и саму программу с помощью последовательности команд:
cd /where_is_dist/lib make cd ../indexer make indexer_shmbuild4. Настройка и запуск. Все возможные настроечные параметры передаются программе при запуске с командной строки. В общем виде командная строка может выглядеть следующим образом:indexer_shmbuild [-b binary.file] [-f text.file] [-m mim_size] [-r] [-s] [-t word] [-x stop_words]
Функции библиотеки. Ниже будет описано, каким образом внешние приложения (обычно это QP) могут взаимодействовать с построенным фрагментом общей памяти для получения необходимых данных скорости выполнения различных программ поиска. Все интерфейсные функции реализованы на языке программирования "C" и находятся в дистрибутиве в модуле src/indexer_shmem.c
- ,где
- -b использовать двоичные данные для загрузки из файла binary.file
- -f использовать текстовые данные для создания образа памяти из файла text.file
- -m включать в память только слова, данные для которых превышают min_size
- -r удалить из памяти shared memory объект
- -s вывести статистику использования объекта shared memory
- -t тестовый режим проверки частотности указанного слова word
- -x файл стоп-слов (по умолчанию не указан).
Интерфейс прикладной программы подразумевает получение структуры данных вида:
typedef struct{ u_int32_t fr_word; /* offset from base pointer of shared memory */ u_int16_t fr_len; /* size in 65536 bytes blocks */ u_int16_t fr_stopword:1; /* is a stop word? */ u_int16_t fr_numbackets:15; /* number of buckets */ } FREQ_WORD;
Остальные функции модуля имеют локальное значение для программы построения программы indexer_shmbuild и внешними программами не используются.
- FREQ_WORD *shmem_word_get(unsigned char *word)
- Получить информацию о частотности слова word от системы. При успехе возвращает указатель на структуру данных. При отсутствии слова в таблице памяти возвращает NULL.
- int shmem_word_attach(void)
- Получить доступ к общей памяти (shared memory) системы частотности поисковых терминов. В случае успеха возвращает 0. В случае нецдачи -1 с соответствующим сообщением об ошибке. Перед вызовом первой функции shmem_word_get() общий сегмент памяти частотности лексем должен обязательно быть прикреплен к прикладной программе с помощью этой функции. Это начальная инициализация подсистемы частотности лексем.
- int shmem_word_detach(void)
- Отцепиться от системы общей памяти частотности слов. Если программа не вызывает эту функцию, то отсоединение происходит автоматически при окончании работы прикладной программы. При успехе возвращает 0. При неудаче -1 и соответствующее сообщение об ошибке. После вызова данной функции, обращение к подсистеме частотности терминов с помощью shmem_word_get() становится невозможным.
![]() |
![]() |
![]() | |
![]() |
![]() |
![]() |
![]() |
Черепаший Ранк. Реклама на Turtle Логотипы Правовая информация Конфиденциальность Контакты |
![]() |
![]() |
![]() ![]() ![]() |