Способ хранения cache - самый быстрый в DataparkSearch. Используйте его, если хотите получить максимальную скорость поиска.
Если после окончания индексирования содержимое вашей директории /var не изменяется, вы можете выключить блокировку файлов при открытиии используя команду "ColdVar yes" в файле search.htm (или в файле searchd.conf, если используется searchd). Это позволит вам сэкономить некоторое время, затрачиваемое на блокировку файлов.
Если вы планируете использовать синонимы, стоп-слова или данные ispell, рекомендуется воспользоваться демоном searchd (См. Разд. 5.4>). Демон searchd при запуске загружает эти данные и держит их в памяти. Это позволяет сократить среднее время выполнения запросов на поиск.
Таже searchd может загружать предварительно в память некоторые данные об URL (по 20 байт на каждую проиндекированую страницу) и лимиты cache mode (4 или 8 байт на каждый URL в зависимости от типа лимита). Это позволяет сократить среднее время обработки запроса.
Используйте команду "Cache yes" в вашем поисковом шаблоне search.htm (или в файле конфигурации searchd.conf, если используется searchd) для включения кэша результатов поиска. Это позволит значительно сократить время поиска при повторных запросах.
Если вы используете кэширование результатов поиска, пожалуйста, не забудьте очищать директорию var/cache после каждого сеанса индексирования/переиндексирования.
Если вы планируете использовать cache mode и имеете достаточно оперативной памяти на вашем компьютере, вы можете разместить директорию /usr/local/dpsearch/var на файловой системе в памяти компьютера (mfs). Это ускорит как индексирование, так и поиск.
Если памяти недостаточно, что поместить в ней /usr/local/dpsearch/var целиком, вы можете разместить на mfs любую из директорий /usr/local/dpsearch/var/tree, /usr/local/dpsearch/var/url или /usr/local/dpsearch/var/store.
Для способа хранения cache вы можете использовать команду URLInfoSQL no для выключения сохранения информации об URL в SQL-базе. Однако использовав эту команду, вы потеряете возможность использовать лимиты по языку и типу документов.
При помощи команды SRVInfoSQL no вы можете выключить запись вспомогательной информации в SQL-таблицу "srvinfo". В этом случае содержимое таблицы не может быть использовано для загрузки конфигурации командой LoadServerTable (См. Разд. 3.8.1>).
По умолчанию, DataparkSearch помечает все URL, отбираемые к индексированию, как ожидающие индексирования через 4 часа. Это позволяет избежать возможного одновременного индексирования одно и того же URL двумя параллельно запущеными копиями indexer. Однако для больших поисковых баз эта операция пометки может занять некоторое время. Вы можете выключить такую пометку используя команду "MarkForIndex no" в вашем файле конфигурации indexer.conf.
По умолчанию, DataparkSearch пытается добавлять данные в SQL-базу вне зависимости, есть она уже там или нет. На некоторых системах, это может вызывать дополнительную обработку сообщений об ошибках. Чтобы избежать появления таких ошибок, вы можете добавить команду CheckInsertSQL yes в ваш файл конфигурации indexer.conf.
Пользователи MySQL могут задать
опцию DELAY_KEY_WRITE=1
для таблиц DataparkSearch.
Это позволит быстрее обновлять индексы, т.к.они не будут записываться на диск пока файл не будет закрыт.
DELAY_KEY_WRITE
целиком исключает обновление индексов на диске.
С этой опцией индексы хранятся только в памяти и записываются на диск в последнюю очередь, по команду FLUSH TABLES или по завершению mysqld. Запись обновлённых индексов на диск может занимать минуты и нетерпеливые пользователи могут прибить сервер командой kill -9 и этим разрушить индексные файлы. Другим неудобством является необходимость запуска myisamchk для этих таблиц перед стартом mysqld для проверки, на случай, если mysqld был убит до этого.
По этим причинам мы не включили эту опцию в структуру наших таблиц по умолчанию.
Т.к. вся информация в индексах может быть восстановлена из данных, находящихся в таблицах, вы не потеряете данные,
используя опцию DELAY_KEY_WRITE
. Но используйте её на свой страх и риск.
Использование c-ares, библиотеки асинхронного резолвера (dns/c-ares в коллекции портов FreeBSD), позволяет для каждой индексирующей нити выполнять запросы к DNS без блокировки. Пожалуйста учтите, это также повышает число одновременных запросов к вашему DNS серверу.
Пред. | Начало | След. |
Способ хранения Cache | Уровень выше | Поддержка SearchD |