Со временем, на жестких дисках скапливается множество потенциально полезной информации, которая так никогда и не лишится своей потенциальности. Ибо не так и просто отыскать чёрную кошку посреди стаи чёрных котов, если она того не хочет. Как же нам заставить потенциально полезную кошку захотеть быть найденной? Да как обычно это и принято в мире Linux -- помните превило номер один? Если вам лень заниматься какой-либо обработкой данных -- поручите это дело специальной программе, в данном случае -- поисковику.
Программ-поисковиков довольно не маленькое число существует, самыми известными среди которых являются htdig, mnogosearch, glimpse... Но лучшим среди оных я в настоящее время полагаю программу swish-e, выгодно отличающуюся от вышеперечисленных простотой конфигурации и богатством возможностей. В частности, swish-e имеет следующие возможности:
Для примера, мои файлы конфигурации swish-e содержат, в частности, следующие строки (в файле base-config):
IndexReport 3
MinWordLimit 3
WordCharacters .-_'abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя\
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ1234567890
BeginCharacters abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя\
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ1234567890
EndCharacters abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя\
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ1234567890
IgnoreFirstChar .-_'
IgnoreLastChar .-_'
TranslateCharacters ёЁ_, еЕ-.
FileRules pathname contains \.r\d+$
FileRules pathname contains \.part\d+(2|3|4|5|6|7|8|9|0)\.rar$
FileRules pathname contains \.index$
FileRules pathname contains \.prop$
NoContents .par2 .md5
FileFilter .pdf pdftotext '-enc KOI8-R "%p" -'
FileFilter .ps ps2text '"%p"'
FileFilter .djvu djvutxt '"%p"|konwert utf8-koi8r'
FileFilter .doc catdoc '-vwscp1251 "%p"'
FileFilter .rtf catdoc '-vwscp1251 "%p"'
FileFilter .wri catdoc '-vwscp1251 "%p"'
FileFilter .chm catchm '"%p"|konwert cp1251-koi8r'
FileFilter .deb dpkg '--info "%p"'
FileFilter .mp3 mp3info '"%p"'
FileFilter .ogg ogginfo '"%p"'
FileFilter .jpg metacam '"%p"'
DefaultContents TXT*
В файле base-config-ru есть помимо прочих строки:
IncludeConfigFile basic-config FuzzyIndexingMode Stemming_ru FileFilter .html cat '"%p"|konwert any/ru-koi8r' FileFilter .txt cat '"%p"|konwert any/ru-koi8r' FileFilter .gz catar '"%p"|konwert any/ru-koi8r' FileFilter .tgz catar '"%p"|konwert any/ru-koi8r' FileFilter .bz2 catar '"%p"|konwert any/ru-koi8r' FileFilter .z catar '"%p"|konwert any/ru-koi8r' FileFilter .zip catar '"%p"|konwert any/ru-koi8r' FileFilter .rar catar '"%p"|konwert any/ru-koi8r' FileFilter .arj catar '"%p"|konwert any/ru-koi8r'
А для каждой подлежащей индексированию сущности приготовлен конфигурационный файл, примерно, как файл home-docs-books:
IncludeConfigFile basic-config-en IndexName "Books on the home." IndexDescription "This is an index of /home/docs/Books" IndexPointer /home/docs/Books IndexAdmin Nikolay A. Panov IndexDir /home/docs/Books IndexFile /home/nik/Sites/swishdir/indexes/home-docs-books.index
При этом индексация начинается командой swish-e -e -c home-docs-books. В результате получаем файл /home/nik/Sites/swishdir/indexes/home-docs-books.index, по которому можно искать, как пример самого простого45:
[11:58 /]$ swish-search -f /home/nik/Sites/swishdir/indexes/home-docs-books.index \
-w Artificial Intelligence
# SWISH format: 2.4.3
# Search words: Artificial Intelligence
# Removed stopwords:
# Number of hits: 168
# Search time: 0.431 seconds
# Run time: 0.451 seconds
1000 /home/docs/Books/Computer Science/Artificial Intelligence/
Tanimoto S.L. Elements of artificial intelligence..
an introduction using LISP (1987)(T)(553s).djvu 7129538
954 /home/docs/Books/Computer Science/Genetic algorithms, neuronetworks/
Chambers D.L. (ed.) Vol. 2. Handbook of genetic algorithms.
New frontiers (CRC, 1995)(421s).djvu 5320731
913 /home/docs/Books/Computer Science/Genetic algorithms, neuronetworks/
Chambers D.L. (ed.) Vol. 3. Handbook of genetic algorithms.
Complex coding systems (CRC, 1999)(659s).djvu 3773019
...и так далее...
Рекомендую прописать alias, по примеру такого:
alias ss='swish-search -f /home/nik/Sites/swishdir/indexes/*.index -m 24 -w'Тогда искать можно будет следующим образом:
[12:16 /]$ ss \"космический календарь\" # SWISH format: 2.4.3 # Search words: "космический календарь" # Removed stopwords: # Number of hits: 3 # Search time: 0.013 seconds # Run time: 0.225 seconds 1000 /home/docs/Library/Library13/Lib/022/tajnws.rar 343675 817 /home/docs/Library/unsorted/Карл Саган -- Драконы Эдема.zip 733418 757 /home/docs/Library/Library13/Lib/022/rerihs.rar 1477816 .
Copyleft © 2002-2007 г. Nikolay A. Panov, "Intro To Linux" (orig), author@niksite.ru |