Turtle

 
 
 
   РАСШИРЕННЫЙ ПОИСК
   ПОИСК ПО ФРАГМЕНТУ
   ПОМОЩЬ
   ПРОСТАЯ ФОРМА
 
 СИНОНИМЫ   ВСЕ ФОРМЫ СЛОВ
 Добавить   Архитектура   Запросы сейчас   Цифры и факты   FAQ   Кнопка поиска   Сделать стартовой 

Программа построения общего сегмента частотности лексем indexer_shmbuild vs/1.0

Статус этого документа.

Этот документ описывает принципы работы, процедуру установки и настройки программы построения общего сегмента памяти частотности лексем indexer_shmbuild поисковой системы Turtle. Документ предназначен для служебного использования. Документ подразумевает предварительное знакомство с протоколом обмена компонент поисковой системы Search System Transfer Protocol и должен рассматриваться в совокупности с ним.

Copyright Notice

Copyright © Stack Technologies Ltd. (2001). All Rights Reserved.

Содержание.

1. Назначение.
2. Принципы работы.
3. Установка.
4. Настройка и запуск.
5. Функции библиотеки.

1. Назначение.

Программа indexer_shmbuild предназначена для построения общего сегмента памяти (shared memory), содержащего информацию о частотности поисковых лексем и размере данных, хранимых в базе данных поисковых процессоров (SP). Эти данные в дальнейшем используют оптимизаторы запросов для оценки времени выполнения различных возможных схем поискового запроса и выбора наиболее оптимальной схемы. Программа может также использоваться для загрузки уже построенного сегмента памяти при перезапуске системы или для его выгрузки из памяти компьютера.

2. Принципы работы.

При запуске программа indexer_shmbuild зачитывает указанный в командной строке текстовый файл лексем, содержащий требуемые частотности слов, производит необходимую инициализацию буфера общей (shared) памяти и ее заполнение требуемыми значениями. После этого, программа производит сохранение двоичного образа памяти на диск для его дальнейшего использования при загрузке ОС.

Подразумевается, что данные зачитываемого текстового файла и данные файла стоп-слов (если используются) имеют сортированную структуру. Такие данные могут быть приготовлены с помощью программы indexer_export, которая должна быть запущена на каждом элементе базового кластера индекса SP, и результаты работы таких запусков должны быть объеденены в один текстовый файл лексем. Подобную процедуру следует проделивать один раз в разумный интервал времени (например месяц), за который частотность слов в базовом индексе изменяется не столь значительно, чтобы вносить существенное влияние в оценку скорости выполнения поискового запроса.

3. Установка.

Исходные тексты программы находятся в дистрибутиве в src/indexer/indexer_shmbuild.c. Программа может быть собрана вместе с другими компонентами поисковой системы Turtle посредством выполнения команды make в корне дистрибутива исходных текстов. Для сборки программы отдельно, необходимо сначала изготовить библиотеку libturtle.a, а затем и саму программу с помощью последовательности команд:

cd /where_is_dist/lib
make
cd ../indexer
make indexer_shmbuild

4. Настройка и запуск.

Все возможные настроечные параметры передаются программе при запуске с командной строки. В общем виде командная строка может выглядеть следующим образом:

indexer_shmbuild [-b binary.file] [-f text.file] [-m mim_size] [-r] [-s] [-t word] [-x stop_words]

,где
-b использовать двоичные данные для загрузки из файла binary.file
-f использовать текстовые данные для создания образа памяти из файла text.file
-m включать в память только слова, данные для которых превышают min_size
-r удалить из памяти shared memory объект
-s вывести статистику использования объекта shared memory
-t тестовый режим проверки частотности указанного слова word
-x файл стоп-слов (по умолчанию не указан).

Функции библиотеки.

Ниже будет описано, каким образом внешние приложения (обычно это QP) могут взаимодействовать с построенным фрагментом общей памяти для получения необходимых данных скорости выполнения различных программ поиска. Все интерфейсные функции реализованы на языке программирования "C" и находятся в дистрибутиве в модуле src/indexer_shmem.c

Интерфейс прикладной программы подразумевает получение структуры данных вида:

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;

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() становится невозможным.

Остальные функции модуля имеют локальное значение для программы построения программы indexer_shmbuild и внешними программами не используются.
Наверх Назад Turtle
 Черепаший Ранк.   Реклама на Turtle   Логотипы   Правовая информация   Конфиденциальность   Контакты 
    ©ЗАО "Группа компаний Стек". 2003-2007