Служебная программа hidedocs предназначена для оперативного удаления из результатов поиска указанных документов. При этом информация о документах остается в индексных файлах и может быть окончательно удалена при последующем переиндексировании.
Программа hidedocs может быть полезна в условиях, когда индексные файлы очень большие, так что слияние результатов после переиндексирования занимает много времени. Программа помечает указанные документы как недоступные и может работать без остановки поискового процесса.
Вызов программы hidedocs осуществляется следующим образом:
hidedocs [-n] hits indexprefixЗдесь в квадратных скобках указаны необязательные параметры.
Директория с индексными файлами, документы в которых надо пометить, дополненная префиксом имени файла. Например, если индексные файлы находятся в директории /yandex/workindex/, нужно указать /yandex/workindex/index.
Путь к файлу с внутренними идентификаторами помечаемых документов. По умолчанию, этот файл имеет формат сохраненного запроса Яндекса, и может быть создан, например, программой savequery.
Указывает, что файл hits с идентификаторами документов имеет текстовый формат. В этом случае файл hits должен содержать внутренние идентификаторы документов в десятичном формате, по одному на строку. Файл такого формата может быть получен с помощью вызова
printkeys -w -k#url= indexkey indexinvс последующим парсированием результата, например, с помощью такого скрипта на PERL:
#!/usr/bin/perl
use strict;
while (<STDIN>) {
if (/^#url="(.+)\s\d+\s\d+/) {
# $1 содержит URL документа
} elsif (/\[(\d+)\.\d+\.\d+\.\d+\]/) {
print $1."\n";
}
}
Пусть документы в индексе, расположенном в директории /yandex/workindex, имеют литеральный атрибут myattr, и имеется файл query следующего содержания:
#myattr="value1" |
#myattr="value2" |
#myattr="value3"
Тогда последовательность вызовов
savequery -y /yandex/workindex/index -q query -o /temp/hit
hidedocs /temp/hit /yandex/workindex/index
делает недоступными в результатах поиска все документы, имеющие атрибут myattr со
значениями value1, value2 или value3.| Пред. | Начало | След. |
| Программа savequery | Уровень выше | Программа attributer |