Ini ialah arahan SWISH-FAQ yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
SWISH-FAQ - Soalan Lazim Swish-e. Jawapan kepada Soalan Lazim
TINJAUAN
Senarai soalan yang biasa ditanya dan dijawab. Sila semak dokumen ini sebelum bertanya
soalan dalam senarai perbincangan Swish-e.
Umum Sering Ditanya
Servis is Swish-e?
Swish-e ialah Smelaksanakan Web Iindexing System untuk Humans - Edipertingkatkan. Dengan itu, anda boleh dengan cepat dan
dengan mudah mengindeks direktori fail atau tapak web jauh dan mencari indeks yang dihasilkan untuk
perkataan dan frasa.
Jadi, is Swish-e a cari enjin?
Nah, ya. Mungkin penggunaan Swish-e yang paling biasa adalah untuk menyediakan enjin carian untuk web
tapak. Pengedaran Swish-e termasuk skrip CGI yang boleh digunakan dengannya untuk menambah a
cari enjin untuk laman web anda. Skrip CGI boleh didapati dalam contoh direktori daripada
pakej pengedaran. Lihat README fail untuk maklumat tentang skrip.
Tetapi Swish-e juga boleh digunakan untuk mengindeks semua jenis data, seperti mesej e-mel, data
disimpan dalam sistem pengurusan pangkalan data hubungan, dokumen XML, atau dokumen seperti
Dokumen Word dan PDF -- atau mana-mana gabungan sumber tersebut pada masa yang sama. Carian
boleh dihadkan kepada bidang atau MetaNames dalam dokumen, atau terhad kepada kawasan dalam
Dokumen HTML (cth. badan, tajuk). Program selain daripada aplikasi CGI boleh menggunakan Swish-e,
juga.
Sekiranya I menaik taraf if Saya sudah berlari a sebelumnya versi of Swish-e?
Sebilangan besar pembetulan pepijat, penambahan ciri dan pembetulan logik telah dibuat dalam versi
2.2. Di samping itu, kelajuan pengindeksan telah dipertingkatkan secara drastik (laporan masa pengindeksan
berubah daripada empat jam kepada 5 minit), dan bahagian utama pengindeksan dan penghurai carian
telah ditulis semula. Terdapat pilihan penyahpepijatan yang lebih baik, format output yang dipertingkatkan, banyak lagi
data meta dokumen (cth. tarikh terakhir diubah suai, ringkasan dokumen), pilihan untuk pengindeksan daripada
sumber data luaran, dan melabah lebih pantas hanya untuk menamakan beberapa perubahan. (Lihat PERUBAHAN
fail untuk maklumat lanjut.
Memandangkan begitu banyak usaha telah pergi ke versi 2.2, sokongan untuk versi sebelumnya akan
mungkin terhad.
Adakah terdapat perduaan Pengagihan tersedia khususnya Swish-e on platform foo?
Foo? Nah, ya terdapat beberapa pengedaran binari yang tersedia. Sila lihat web Swish-e
tapak untuk senarai di http://swish-e.org/.
Secara umum, anda disyorkan untuk membina Swish-e daripada sumber, jika boleh.
Do I perlu kepada indeks semula my tapak setiap masa I menaik taraf kepada a baru Swish-e versi?
Kadang-kadang ia mungkin tidak perlu, tetapi kerana anda tidak tahu sama ada apa-apa
dalam indeks telah berubah, ia adalah peraturan yang baik untuk mengindeks semula.
Apa itu yang kelebihan of menggunakan yang libxml2 perpustakaan khususnya parsing HTML?
Swish-e mungkin dipautkan dengan libxml2, perpustakaan untuk bekerja dengan dokumen HTML dan XML.
Swish-e boleh menggunakan libxml2 untuk menghuraikan dokumen HTML dan XML.
Penghurai libxml2 ialah penghurai yang lebih baik daripada penghurai HTML terbina dalam Swish-e. Ia menawarkan lebih banyak lagi
ciri, dan ia melakukan kerja yang lebih baik dalam mengekstrak teks daripada halaman web. Dalam
Selain itu, anda boleh menggunakan tetapan konfigurasi "ParserWarningLevel" untuk mencari struktur
ralat dalam dokumen anda yang boleh (dan akan dengan penghurai HTML Swish-e) menyebabkan dokumen
untuk diindeks secara tidak betul.
Libxml2 tidak diperlukan, tetapi amat disyorkan untuk menghuraikan dokumen HTML. ia adalah
juga disyorkan untuk menghuraikan XML, kerana ia menawarkan lebih banyak ciri daripada Expat dalaman
xml.c penghurai.
Penghurai HTML dalaman akan mempunyai sokongan terhad, dan mempunyai beberapa pepijat. Untuk
contoh, entiti HTML mungkin tidak sentiasa ditukar dengan betul dan sifat tidak mempunyai
entiti ditukar. Penghurai dalaman cenderung menjadi keliru apabila HTML yang tidak sah dihuraikan
di mana penghurai libxml2 tidak keliru dengan kerap. Struktur lebih baik dikesan
dengan parser libxml2.
Jika anda menggunakan modul Perl (antara muka C ke perpustakaan Swish-e) anda mungkin mahu
bina dua versi Swish-e, satu dengan perpustakaan libxml2 dipautkan dalam binari, dan satu
tanpa, dan bina modul Perl terhadap perpustakaan tanpa kod libxml2. Ini adalah
untuk menjimatkan ruang di perpustakaan. Mudah-mudahan, perpustakaan itu suatu hari nanti akan dipecahkan
pengindeksan dan kod carian (sukarelawan dialu-alukan).
Adakah Swish-e termasuk a CGI antara muka?
ya. macam.
Terdapat dua contoh skrip CGI disertakan, swish.cgi dan search.cgi. Kedua-duanya dipasang di
$prefix/lib/swish-e.
Kedua-duanya memerlukan sedikit kerja untuk menyediakan dan menggunakan. Swish.cgi mungkin adalah yang kebanyakan orang akan lakukan
mahu digunakan kerana ia mengandungi lebih banyak ciri. Search.cgi adalah untuk mereka yang ingin bermula
skrip kecil dan menyesuaikannya untuk memenuhi keperluan mereka.
Contoh penggunaan swish.cgi diberikan dalam halaman manual INSTALL, dan ia adalah swish.cgi
dokumentasi. Seperti yang sering berlaku, ia akan menjadi lebih mudah untuk digunakan jika anda mula-mula membaca
dokumentasi.
Sila berhati-hati tentang skrip CGI yang terdapat di Internet untuk digunakan dengan Swish-e. Ada yang
tidak selamat.
Contoh skrip CGI yang disertakan telah direka bentuk dengan mengambil kira keselamatan. Walau apa pun, anda
digalakkan untuk meminta pakar Perl tempatan anda menyemaknya (dan semua skrip CGI lain yang anda gunakan)
sebelum meletakkannya ke dalam pengeluaran. Ini hanyalah dasar yang baik untuk diikuti.
Cara mendapatkan is Swish-e?
Kami tidak mengetahui sebarang isu keselamatan dengan menggunakan Swish-e. Perhatian yang teliti telah dibuat dengan
mengambil kira masalah keselamatan biasa seperti buffer overruns apabila pengaturcaraan Swish-e.
Isu keselamatan yang paling mungkin dengan Swish-e ialah apabila ia dijalankan melalui CGI yang ditulis dengan buruk
antara muka. Ini tidak terhad kepada skrip CGI yang ditulis dalam Perl, kerana ia sama mudahnya
tulis skrip CGI yang tidak selamat dalam C, Java, PHP atau Python. Sumber maklumat yang baik ialah
disertakan dengan pengedaran Perl. Taip "perldoc perlsec" pada gesaan setempat anda untuk mendapatkan maklumat lanjut
maklumat. Satu lagi dokumen mesti dibaca terletak di
"http://www.w3.org/Security/faq/wwwsf4.html".
Perhatikan bahawa terdapat banyak percuma namun tidak selamat dan skrip CGI ditulis dengan buruk tersedia --
malah sesetengahnya direka untuk digunakan dengan Swish-e. Sila semak dengan teliti mana-mana skrip CGI yang anda gunakan.
Percuma bukanlah harga yang baik apabila anda mendapat pelayan anda digodam...
Sekiranya I menjalankan Swish-e as yang superuser (akar)?
Tidak. Tidak pernah.
Servis fail tidak Swish-e menulis?
Swish menulis fail indeks, sudah tentu. Ini ditentukan dengan "Fail Indeks"
arahan konfigurasi atau dengan suis baris arahan "-f".
Fail indeks sebenarnya adalah koleksi fail, tetapi semuanya bermula dengan nama fail
ditentukan dengan arahan "IndexFile" atau suis baris arahan "-f".
Contohnya, fail yang berakhir dengan .prop mengandungi sifat dokumen.
Apabila mencipta fail indeks Swish-e menambahkan sambungan .temp kepada nama fail indeks.
Apabila pengindeksan selesai Swish-e menamakan semula .temp fail ke fail indeks yang ditentukan oleh
"Fail Indeks" atau "-f". Ini dilakukan supaya indeks sedia ada kekal tidak disentuh sehingga ia
menyelesaikan pengindeksan.
Swish-e juga menulis fail sementara dalam beberapa kes semasa pengindeksan (cth. "-s http", "-s
prog" dengan penapis), apabila bergabung, dan apabila menggunakan "-e"). Fail sementara dibuat dengan
yang mkstemp(3) fungsi (dengan kebenaran 0600 pada sistem pengendalian seperti unix).
Fail sementara dibuat dalam direktori yang ditentukan oleh pembolehubah persekitaran
"TMPDIR" dan "TMP" dalam susunan itu. Jika mereka tidak ditetapkan maka swish menggunakan tetapan
tetapan konfigurasi TmpDir. Jika tidak, fail sementara akan terletak di
direktori semasa.
Can I indeks PDF and MS-Word dokumen?
Ya, anda boleh menggunakan a Saring untuk menukar dokumen semasa mengindeks, atau anda boleh menggunakan program
bahawa "menyuap" dokumen kepada Swish-e yang telah ditukar. Lihat "Pengindeksan" di bawah.
Can I indeks dokumen on a web pelayan?
Ya, Swish-e menyediakan dua cara untuk mengindeks (labah-labah) dokumen pada pelayan web. Lihat
"Spidering" di bawah.
Swish-e boleh mendapatkan semula dokumen daripada sistem fail atau dari pelayan web jauh. Ia boleh
juga melaksanakan program yang mengembalikan dokumen kepadanya. Program ini boleh mendapatkan semula
dokumen daripada pangkalan data, menapis fail dokumen yang dimampatkan, menukar fail PDF, mengekstrak
data daripada arkib mel, atau tapak web jauh labah-labah.
Can I melaksanakan kata kunci in my dokumen?
Ya, Swish-e boleh mengaitkan perkataan dengan MetaNames semasa mengindeks, dan anda boleh mengehadkan anda
mencari ke MetaNames ini semasa mencari.
Dalam fail HTML anda, anda boleh meletakkan kata kunci dalam teg META HTML atau dalam blok XML.
Teg META boleh mempunyai dua format dalam dokumen sumber anda:
Dan dalam format XML (juga boleh digunakan dalam dokumen HTML apabila menggunakan libxml2):
Beberapa Kandungan
Kemudian, untuk memaklumkan Swish-e tentang kewujudan nama meta dalam dokumen anda, edit
baris dalam fail konfigurasi anda:
MetaNames DC.subjek meta1 meta2
Apabila mencari, anda kini boleh mengehadkan beberapa atau semua istilah carian kepada MetaName tersebut. Sebagai contoh,
untuk mencari dokumen yang mengandungi perkataan epal dan juga mempunyai sama ada buah atau masakan
teg meta subjek DC.
Servis adalah dokumen harta?
Sifat dokumen biasanya data yang menerangkan dokumen. Sebagai contoh,
sifat mungkin termasuk nama laluan dokumen, tarikh terakhir diubah suai, tajuknya ataunya
saiz. Swish-e menyimpan sifat dokumen dalam fail indeks, dan ia boleh dilaporkan
kembali dalam hasil carian.
Swish-e juga menggunakan sifat untuk mengisih. Anda boleh mengisih hasil anda mengikut satu atau lebih
sifat, dalam susunan menaik atau menurun.
Sifat juga boleh ditakrifkan dalam dokumen anda. Fail HTML dan XML boleh menentukan tag
(lihat soalan sebelumnya) sebagai sifat. The kandungan daripada teg ini kemudiannya boleh dikembalikan
dengan hasil carian. Sifat yang ditentukan pengguna ini juga boleh digunakan untuk mengisih carian
keputusan.
Contohnya, jika anda mempunyai perkara berikut dalam dokumen anda
dan "pencipta" ditakrifkan sebagai harta (lihat "PropertyNames" dalam SWISH-CONFIG) Swish-e boleh
kembalikan "jabatan perakaunan" dengan keputusan untuk dokumen itu.
swish-e -w foo -p pencipta
Atau untuk menyusun:
swish-e -w foo -s pencipta
Apa itu yang perbezaan antara MetaNames and PropertyNames?
MetaNames membenarkan carian kata kunci dalam dokumen anda. Iaitu, anda boleh menggunakan MetaNames untuk
mengehadkan carian kepada hanya sebahagian daripada dokumen anda.
PropertyNames, sebaliknya, mentakrifkan teks yang boleh dikembalikan dengan hasil, dan boleh
digunakan untuk menyusun.
Kedua-duanya menggunakan meta tags ditemui dalam dokumen anda (seperti yang ditunjukkan dalam dua soalan di atas) untuk ditakrifkan
teks yang anda ingin gunakan sebagai nama harta atau meta.
Anda boleh mentakrifkan teg sebagai kedua-dua harta dan nama meta. Sebagai contoh:
diletakkan dalam dokumen anda dan kemudian menggunakan tetapan konfigurasi:
Pencipta PropertyNames
Pencipta MetaNames
akan membolehkan anda mengehadkan carian anda kepada dokumen yang dibuat oleh perakaunan:
swish-e -w 'foo and creator=(accounting)'
Itu akan menemui semua dokumen dengan perkataan "foo" yang juga mempunyai teg meta pencipta itu
mengandungi perkataan "perakaunan". Ini menggunakan MetaNames.
Dan anda juga boleh berkata:
swish-e -w foo -p pencipta
yang akan mengembalikan semua dokumen dengan perkataan "foo", tetapi hasilnya juga akan menyertakan
kandungan teg meta "pencipta" bersama hasil carian. Ini menggunakan sifat.
Anda juga boleh menggunakan sifat dan nama meta pada masa yang sama:
swish-e -w pencipta=(perakaunan atau pemasaran) -p pencipta -s pencipta
Yang mencari hanya dalam "pencipta" meta nama untuk sama ada perkataan "perakaunan" atau
"pemasaran", mencetak kandungan kandungan "pencipta" harta, dan macam-macam
hasil oleh "pencipta" harta nama.
(Lihat juga suis format output "-x" dalam SWISH-RUN.)
Can Swish-e indeks berbilang bait watak?
Tidak. Ini memerlukan banyak usaha untuk diubah. Tetapi, Swish-e berfungsi dengan aksara lapan bit,
begitu banyak set aksara boleh digunakan. Ambil perhatian bahawa ia memang memanggil ANSI-C untuk rendahkan() fungsi
yang bergantung pada tetapan tempat semasa. Lihat tempat-tempat kejadian(7) untuk maklumat lanjut.
Pengindeksan
Cara do I lulus Swish-e a senarai of fail kepada indeks?
Pada masa ini, tiada arahan konfigurasi untuk memasukkan fail yang mengandungi senarai
daripada fail untuk diindeks. Tetapi, terdapat arahan untuk memasukkan fail konfigurasi lain.
SertakanConfigFile /path/to/other/config
Dan dalam "/path/to/other/config" anda boleh berkata:
Fail IndexDir1 fail2 fail3 fail4 fail5 ...
Fail IndexDir20 fail21 fail22
Anda juga boleh menentukan lebih daripada satu fail konfigurasi pada baris arahan:
./swish-e -c config_one config_two config_three
Pilihan lain ialah membuat direktori dengan pautan simbolik fail untuk diindeks, dan
indeks hanya direktori itu.
Cara tidak Swish-e Tahu yang parser kepada gunakan?
Swish boleh menghuraikan dokumen HTML, XML dan teks. Penghurai ditetapkan dengan mengaitkan fail
sambungan dengan penghurai oleh arahan "IndexContents". Anda boleh menetapkan penghurai lalai
dengan arahan "DefaultContents". Jika dokumen tidak diberikan penghurai, ia akan
lalai kepada penghurai HTML (HTML2 jika dibina dengan libxml2).
Anda boleh menggunakan Penapis atau program luaran untuk menukar dokumen kepada HTML, XML atau teks.
Can I indeks semula and cari at yang sama masa?
ya. Bermula dengan indeks Swish-e versi 2.2 kepada fail sementara, dan kemudian menamakan semula fail
fail apabila pengindeksan selesai. Pada kebanyakan sistem, nama semula adalah atom. Tetapi, sejak Swish-e
juga menjana lebih daripada satu fail semasa pengindeksan akan ada tempoh yang sangat singkat
masa antara menamakan semula pelbagai fail apabila indeks tidak segerak.
Tetapan dalam src/config.h mengawal beberapa pilihan yang berkaitan dengan fail sementara, dan penggunaannya
semasa pengindeksan.
Can I indeks frasa?
Frasa diindeks secara automatik. Untuk mencari frasa hanya letakkan petikan berganda
sekitar frasa.
Sebagai contoh:
swish-e -w 'percuma dan "enjin carian pantas"'
Cara boleh I mencegah Ungkapan-ungkapan dari sepadan seluruh ayat?
Gunakan arahan konfigurasi BumpPositionCounterCharacters.
Swish-e tidak pengindeksan a tertentu perkataan or hukuman.
Terdapat beberapa parameter konfigurasi yang mengawal perkara yang dianggap Swish-e a
"perkataan" dan ia mempunyai ciri penyahpepijatan untuk membantu menentukan sebarang masalah pengindeksan.
Arahan fail konfigurasi (SWISH-CONFIG) "WordCharacters", "BeginCharacters",
"EndCharacters", "IgnoreFirstChar", dan "IgnoreLastChar" ialah tetapan utama yang Swish-
e digunakan untuk mentakrifkan "perkataan". Lihat SWISH-CONFIG dan SWISH-RUN untuk mendapatkan butiran.
Swish-e juga menggunakan lalai masa kompilasi untuk banyak tetapan. Ini terletak di
src/config.h fail.
Penggunaan argumen baris arahan "-k", "-v" dan "-T" berguna semasa menyahpepijat ini
masalah. Menggunakan "-T INDEXED_WORDS" semasa pengindeksan akan memaparkan setiap perkataan sebagaimana adanya
diindeks. Anda harus menentukan satu fail apabila menggunakan ciri ini kerana ia boleh menjana banyak
keluaran.
./swish-e -c my.conf -i problem.file -T INDEXED_WORDS
Anda juga mungkin ingin mengindeks satu fail yang mengandungi perkataan yang sedang atau tidak sedang diindeks
seperti yang anda jangkakan dan gunakan -T untuk mengeluarkan maklumat penyahpepijatan tentang indeks. A berguna
perintah mungkin:
./swish-e -f index.swish-e -T INDEX_FULL
Sebaik sahaja anda melihat cara Swish-e menghuraikan dan mengindeks perkataan anda, anda boleh melaraskan
tetapan konfigurasi yang dinyatakan di atas untuk mengawal perkataan yang diindeks.
Satu lagi arahan berguna mungkin:
./swish-e -c my.conf -i problem.file -T PARSED_WORDS INDEXED_WORDS
Ini akan menunjukkan perkataan spasi putih yang dihuraikan daripada dokumen (PARSED_WORDS) dan caranya
perkataan dibahagikan kepada perkataan berasingan untuk pengindeksan (INDEXED_WORDS).
Cara do I menyimpan Swish-e dari pengindeksan nombor?
Swish-e mengindeks perkataan seperti yang ditakrifkan oleh tetapan "WordCharacters", seperti yang diterangkan di atas. Jadi
untuk mengelakkan nombor pengindeksan anda hanya mengalih keluar digit daripada tetapan "WordCharacters".
Terdapat juga beberapa tetapan dalam src/config.h yang mengawal "perkataan" yang diindeks. awak
boleh mengkonfigurasi swish untuk tidak pernah mengindeks perkataan yang kesemuanya adalah digit, vokal atau konsonan, atau
yang mengandungi lebih daripada beberapa nombor berturut-turut digit, vokal atau konsonan. Dalam
am, anda tidak perlu menukar tetapan ini.
Selain itu, terdapat ciri percubaan yang dipanggil "IgnoreNumberChars" yang membolehkan anda melakukannya
mentakrifkan satu set aksara yang menerangkan nombor. Jika perkataan terdiri daripada hanyalah mereka
aksara ia tidak akan diindeks.
Swish-e kemalangan and terbakar on a tertentu fail. Servis boleh I buat?
Ini tidak sepatutnya berlaku. Jika ya, sila hantar ke senarai perbincangan Swish-e butirannya
jadi ia boleh diterbitkan semula oleh pemaju.
Sementara itu, anda boleh menggunakan arahan "FileRules" untuk mengecualikan nama fail tertentu,
atau nama laluan, atau tajuknya. Jika terdapat masalah serius dalam mengindeks jenis tertentu
fail, mereka mungkin tidak mempunyai teks yang sah di dalamnya (ia mungkin fail binari, contohnya). awak
boleh menggunakan NoContents untuk mengecualikan jenis fail tersebut.
Swish-e akan mengeluarkan amaran jika aksara nol terbenam ditemui dalam dokumen. ini
amaran akan menjadi petunjuk bahawa anda cuba mengindeks data binari. Jika anda perlu
fail binari indeks cuba mencari program yang akan mengeluarkan teks (cth. tali(1),
catdoc(1), pdftotext(1)).
Cara kepada I mencegah pengindeksan of beberapa dokumen?
Apabila menggunakan sistem fail untuk mengindeks fail anda, anda boleh menggunakan arahan "FileRules".
Selain daripada "Tajuk FileRules", "FileRules" hanya berfungsi dengan sistem fail ("-S fs")
kaedah pengindeksan, bukan dengan "-S prog" atau "-S http".
Jika anda melayari laman web yang anda ada kawalan, gunakan a robots.txt fail dalam dokumen anda
akar. Ini ialah cara standard untuk mengecualikan fail daripada enjin carian dan adalah sepenuhnya
disokong oleh Swish-e. Lihat http://www.robotstxt.org/
Jika melayari laman web dengan disertakan spider.pl program kemudian tambah sebarang ujian yang diperlukan ke
fail konfigurasi labah-labah. Taip dalam direktori "prog-bin" untuk
butiran atau lihat dokumentasi labah-labah di tapak web Swish-e. Cari bahagian pada
fungsi panggil balik.
Jika menggunakan perpustakaan libxml2 untuk menghuraikan HTML (yang mungkin anda gunakan), anda juga boleh menggunakan
Pengecualian Meta Robots dalam dokumen anda:
Lihat arahan obeyRobotsNoIndex.
Cara do I mencegah pengindeksan bahagian of a dokumen?
Untuk menghalang Swish-e daripada mengindeks pengepala, pengaki atau bar navigasi biasa, DAN anda
menggunakan libxml2 untuk menghuraikan HTML, maka anda boleh menggunakan tag HTML palsu di sekeliling teks yang anda inginkan
untuk mengabaikan dan menggunakan arahan "IgnoreMetaTags". Ini akan menghasilkan mesej ralat jika
"ParserWarningLevel" ditetapkan kerana ia adalah HTML tidak sah.
"IgnoreMetaTags" berfungsi dengan dokumen XML (dan dokumen HTML apabila menggunakan libxml2 sebagai
parser), tetapi bukan dengan dokumen yang dihuraikan oleh penghurai teks (TXT).
Jika anda menggunakan parser libxml2 (HTML2 dan XML2) maka anda boleh menggunakan yang berikut
ulasan dalam dokumen anda untuk mengelakkan pengindeksan:
dan/atau ini boleh digunakan juga:
Cara do I mengubah suai yang jalan or URL of yang diindeks dokumen.
Gunakan arahan konfigurasi "ReplaceRules" untuk menulis semula nama laluan dan URL. Jika anda adalah
menggunakan kaedah input "-S prog" anda boleh menetapkan laluan kepada mana-mana rentetan.
Cara boleh I indeks data dari a pangkalan data?
Gunakan kaedah sumber dokumen "prog" untuk mengindeks. Tulis program untuk mengekstrak keluar
data daripada pangkalan data anda dan formatkannya sebagai XML, HTML atau teks. Lihat contoh dalam
direktori "prog-bin", dan soalan seterusnya.
Cara do I indeks my PDF, Word, and dimampatkan dokumen?
Swish-e secara dalaman hanya boleh menghuraikan fail HTML, XML dan TXT (teks) secara lalai, tetapi boleh membuat
penggunaan Penapis yang akan menukar jenis fail lain seperti dokumen MS Word, PDF atau
gzip fail ke dalam salah satu jenis fail yang Swish-e faham.
Sila lihat SWISH-CONFIG dan contoh dalam Penapis and tong penapis direktori untuk lebih lanjut
maklumat.
Lihat soalan seterusnya untuk mengetahui tentang pilihan penapisan dengan Swish-e.
Cara do I menapis dokumen?
Istilah "penapis" dalam Swish-e bermaksud penukaran dokumen daripada satu jenis (yang
swish-e tidak boleh mengindeks secara langsung) ke dalam jenis yang boleh diindeks oleh Swish-e, iaitu HTML, biasa
teks, atau XML. Untuk menambah kekeliruan, terdapat beberapa cara untuk menyelesaikannya
Swish-e. Jadi inilah sedikit latar belakang.
Arahan FileFilter telah ditambahkan ke swish terlebih dahulu. Ciri ini membolehkan anda menentukan a
program untuk dijalankan untuk dokumen yang sepadan dengan sambungan fail yang diberikan. Contohnya, untuk menapis
Fail PDF (fail yang berakhir dengan .pdf) anda boleh menentukan tetapan konfigurasi:
FileFilter .pdf pdftotext "'%p' -"
yang mengatakan untuk menjalankan program "pdftotext" memberikannya nama laluan fail (%p) dan a
dash (yang memberitahu pdftotext kepada output ke stdout). Kemudian untuk setiap fail .pdf Swish-e dijalankan
program ini dan membaca dalam dokumen yang ditapis daripada output daripada program penapis.
Ini mempunyai kelebihan iaitu ia mudah untuk disediakan -- satu baris dalam fail konfigurasi adalah semua
yang diperlukan untuk menambah penapis ke dalam Swish-e. Tetapi ia juga mempunyai beberapa masalah. Untuk
contoh, jika anda menggunakan skrip Perl untuk melakukan penapisan anda, ia boleh menjadi sangat perlahan sejak
skrip penapis mesti dijalankan (dan dengan itu disusun) untuk setiap dokumen yang diproses. Ini adalah
diburukkan lagi apabila menggunakan kaedah -S http kerana kaedah -S http juga menggunakan skrip Perl
yang dijalankan untuk setiap URL yang diambil. Juga, apabila menggunakan kaedah input -S prog (membaca
input daripada program) menggunakan FileFilter bermakna Swish-e mesti membaca fail dari
program luaran dan kemudian tulis fail itu ke fail sementara sebelum menjalankan
penapis.
Dengan -S prog adalah lebih masuk akal untuk menapis dokumen dalam program itu
mengambil dokumen daripada meminta swish-e membaca fail ke dalam ingatan, tulis ke a
fail sementara dan kemudian jalankan program luaran.
Taburan Swish-e mengandungi beberapa contoh program prog -S. spider.pl ialah
labah-labah web berciri penuh yang munasabah yang menawarkan lebih banyak pilihan daripada kaedah -S http.
Dan ia jauh lebih pantas daripada menjalankan -S http juga.
Labah-labah mempunyai fail konfigurasi perl, yang bermaksud anda boleh menambah logik pengaturcaraan dengan betul
ke dalam fail konfigurasi tanpa menyunting program labah-labah. Sedikit logik itu
yang disediakan dalam fail konfigurasi labah-labah ialah fungsi "panggilan balik" yang membolehkan anda
menapis kandungan. Dalam erti kata lain, sebelum labah-labah menghantar dokumen web yang diambil
swish untuk mengindeks labah-labah boleh memanggil subrutin mudah dalam konfigurasi labah-labah
fail yang menghantar dokumen dan jenis kandungannya. Subrutin kemudiannya boleh melihat pada
jenis kandungan dan tentukan sama ada dokumen itu perlu ditapis.
Sebagai contoh, apabila memproses dokumen jenis "aplikasi/msword" panggilan balik
subrutin mungkin memanggil modul perl doc2txt.pm dan dokumen jenis "aplikasi/pdf"
boleh menggunakan modul pdf2html.pm. The prog-bin/SwishSpiderConfig.pl fail menunjukkan ini
penggunaannya.
Sistem ini berfungsi dengan baik, tetapi juga bermakna bahawa lebih banyak kerja diperlukan untuk menyediakan
penapis. Mula-mula, anda mesti menyemak secara eksplisit jenis kandungan tertentu dan kemudian memanggil
modul Perl yang sesuai, dan kedua, anda perlu tahu bagaimana setiap modul mesti dipanggil dan
bagaimana setiap satu mengembalikan kandungan yang mungkin diubah suai.
Masuk SWISH::Filter.
Untuk memudahkan urusan, modul SWISH::Filter Perl telah dicipta. Idea modul ini
ialah terdapat satu antara muka yang digunakan untuk menapis semua jenis dokumen. Jadi sebaliknya
menyemak jenis kandungan tertentu yang anda hanya berikan jenis kandungan dan dokumen
modul SWISH::Filter dan ia mengembalikan jenis kandungan dan dokumen baharu jika ada
ditapis. Penapis yang melakukan kerja sebenar direka bentuk dengan antara muka standard dan
berfungsi seperti penapis "plug-in". Menambah penapis baharu bermakna hanya memuat turun penapis ke a
direktori dan tiada perubahan diperlukan pada fail konfigurasi labah-labah. Muat turun penapis
untuk Postscript dan kali seterusnya anda menjalankan pengindeksan fail Postscript anda akan diindeks.
Oleh kerana penapis adalah diseragamkan, mudah-mudahan apabila anda mempunyai keperluan untuk menapis dokumen
daripada jenis tertentu sudah ada penapis sedia untuk kegunaan anda.
Sekarang, ambil perhatian bahawa modul perl mungkin atau mungkin tidak melakukan penukaran sebenar dokumen.
Sebagai contoh, modul penukaran PDF memanggil program pdfinfo dan pdftotext. Itu
program (sebahagian daripada pakej Xpfd) mesti dipasang secara berasingan daripada penapis.
Fail konfigurasi labah-labah contoh SwishSpiderConfig.pl menunjukkan cara menggunakan fail
SWISH::Modul penapis untuk penapisan. Fail ini dipasang di
$prefix/share/doc/swish-e/examples/prog-bin, di mana $prefix biasanya / usr / setempat pada unix-
jenis mesin.
Kaedah penapisan SWISH::Filter juga boleh digunakan dengan kaedah -S http
pengindeksan. Secara lalainya swishspider program (skrip pembantu Perl yang mengambil
dokumen dari web) akan cuba menggunakan modul SWISH::Filter jika ia boleh didapati di
Laluan perpustakaan Perls. Laluan ini ditetapkan secara automatik untuk spider.pl tetapi bukan untuk swishspider
(kerana ia akan memperlahankan kaedah yang sudah pun perlahan dan spider.pl disyorkan
kaedah -S http).
Oleh itu, semua yang diperlukan untuk menggunakan sistem ini dengan -S http ialah menetapkan tatasusunan @INC
untuk menunjuk ke direktori penapis.
Contohnya, jika pengedaran swish-e telah dibongkar ke dalam ~/swish-e:
PERL5LIB=~/swish-e/filters swish-e -c conf -S http
akan membenarkan kaedah -S http untuk menggunakan modul SWISH::Filter.
Ambil perhatian bahawa jika anda tidak menggunakan modul SWISH::Filter anda mungkin ingin mengedit
swishspider atur cara dan lumpuhkan penggunaan modul SWISH::Filter menggunakan tetapan ini:
gunakan tetap USE_FILTERS => 0; # lumpuhkan SWISH:: Penapis
Ini menghalang program daripada cuba menggunakan modul SWISH::Filter untuk setiap bukan-
URL teks yang diambil. Sudah tentu, jika anda bimbang dengan kelajuan pengindeksan anda harus
menggunakan kaedah -S prog dengan spider.pl dan bukannya -S http.
Jika anda tidak gelabah, tetapi anda masih mahu menggunakan modul SWISH::Filter untuk
penapisan anda boleh menggunakan program DirTree.pl (dalam $prefix/lib/swish-e). Ini adalah mudah
program yang merentasi sistem fail dan menggunakan SWISH::Filter untuk penapisan.
Berikut ialah dua contoh cara menjalankan program penapis, satu menggunakan "FileFilter" Swish-e
arahan, satu lagi menggunakan program kaedah input "prog". Lihat SwishSpiderConfig.pl fail
untuk contoh menggunakan modul SWISH::Filter.
Penapis ini hanya menggunakan program "/bin/cat" sebagai penapis dan hanya mengindeks fail .html.
Pertama, menggunakan kaedah "FileFilter", berikut ialah keseluruhan fail konfigurasi (swish.conf):
IndexDir .
IndexSahaja .html
FileFilter .html "/bin/cat" "'%p'"
dan indeks dengan arahan
swish-e -c swish.conf -v 1
Sekarang, perkara yang sama dengan menggunakan kaedah input sumber dokumen "-S prog" dan Perl
program yang dipanggil catfilter.pl. Anda boleh melihat bahawa ia adalah lebih banyak kerja daripada menggunakan
Kaedah "FileFilter" di atas, tetapi menyediakan tempat untuk melakukan pemprosesan tambahan. Di dalam ini
contoh, kaedah "prog" hanya lebih pantas sedikit. Tetapi jika anda memerlukan skrip perl untuk
dijalankan sebagai FileFilter maka "prog" akan menjadi lebih pantas.
#!/usr/local/bin/perl -w
gunakan ketat;
gunakan Fail::Cari; # untuk mengulangi pokok direktori
$/ = undef;
cari(
{ wanted => \&wanted, no_chdir => 1, },
'.',
);
sub dikehendaki {
kembali jika -d;
kembali melainkan /\.html$/;
$mtime saya = (stat)[9];
$anak saya = terbuka( FH, '-⎪' );
mati "Gagal membuat $!" melainkan ditakrifkan $anak;
eksekutif '/bin/cat', $_ melainkan $child;
$content saya = ;
$size saya = panjang $kandungan;
cetak <
Panjang Kandungan: $saiz
M masa Terakhir: $mtime
Nama Laluan: $_
EOF
cetak ;
}
Dan indeks dengan arahan:
swish-e -S prog -i ./catfilter.pl -v 1
Contoh ini mungkin tidak akan berfungsi di bawah Windows kerana '-⎪' terbuka. Paip yang mudah
terbuka mungkin berfungsi dengan baik:
Iaitu, menggantikan:
$anak saya = terbuka( FH, '-⎪' );
mati "Gagal membuat $!" melainkan ditakrifkan $anak;
eksekutif '/bin/cat', $_ melainkan $child;
dengan ini:
buka ( FH, "/bin/cat $_ ⎪") atau mati $!;
Perl akan cuba mengelak daripada menjalankan arahan melalui shell jika aksara meta tidak
berlalu ke tempat terbuka. Lihat "perldoc -f open" untuk mendapatkan maklumat lanjut.
huh, tetapi I hanya mahu kepada Tahu bagaimana kepada indeks PDF dokumen!
Lihat contoh dalam conf direktori dan ulasan dalam SwishSpiderConfig.pl fail.
Lihat soalan sebelumnya untuk butiran mengenai penapisan. Kaedah yang anda memutuskan untuk menggunakan akan
bergantung pada seberapa cepat anda ingin mengindeks, dan tahap keselesaan anda dengan menggunakan modul Perl.
Tidak kira kaedah penapisan yang anda gunakan, anda perlu memasang pakej Xpdf
Boleh didapati daripada http://www.foolabs.com/xpdf/.
Saya menggunakan Windows and tidak boleh mendapatkan Penapis or yang prog input kaedah kepada kerja!
Kedua-dua kaedah input dan penapis "-S prog" menggunakan panggilan sistem "popen()" untuk menjalankan
program luar. Jika program luaran anda, sebagai contoh, skrip perl, anda perlu melakukannya
beritahu Swish-e untuk menjalankan perl, bukannya skrip. Swish-e akan menukar garis miring ke hadapan kepada
garis miring ke belakang apabila berjalan di bawah Windows.
Sebagai contoh, anda perlu menentukan laluan ke perl sebagai (dengan mengandaikan di sinilah perl berada
pada sistem anda):
IndexDir e:/perl/bin/perl.exe
Atau jalankan penapis seperti:
FileFilter .foo e:/perl/bin/perl.exe 'myscript.pl "%p"'
Selalunya lebih mudah untuk hanya memasang Linux.
Cara do I indeks bukan bahasa Inggeris kata-kata?
Swish-e mengindeks aksara 8-bit sahaja. Ini ialah set aksara ISO 8859-1 Latin-1, dan
termasuk banyak huruf bukan Inggeris (dan simbol). Selagi mereka disenaraikan dalam
"WordCharacters" mereka akan diindeks.
Sebenarnya, anda mungkin boleh mengindeks mana-mana set aksara 8-bit, selagi anda tidak bercampur
set aksara dalam indeks yang sama dan jangan gunakan libxml2 untuk menghurai (lihat di bawah).
Arahan "TranslateCharacters" (SWISH-CONFIG) boleh menterjemah aksara semasa mengindeks
dan mencari. Anda boleh menentukan pemetaan satu aksara kepada aksara lain dengan
Arahan "Terjemah Aksara".
"TranslateCharacters :ascii7:" ialah set aksara pratakrif yang akan menterjemah
aksara lapan-bit kepada aksara ascii7. Menggunakan peraturan ":ascii7:" akan, sebagai contoh,
terjemahkan "Ääç" kepada "aac". Ini bermakna: mencari "Çelik", "çelik" atau "celik" akan semuanya
padankan perkataan yang sama.
Nota: Apabila menggunakan libxml2 untuk menghurai, dokumen yang dihuraikan ditukar secara dalaman (dalam
libxml2) kepada UTF-8. Ini ditukar kepada ISO 8859-1 Latin-1 apabila pengindeksan. Dalam kes di mana
rentetan tidak boleh ditukar daripada UTF-8 kepada ISO 8859-1 (kerana ia mengandungi bukan 8859-1
aksara), rentetan akan dihantar ke Swish-e dalam pengekodan UTF-8. Ini akan mengakibatkan
beberapa perkataan diindeks secara tidak betul. Menetapkan "ParserWarningLevel" kepada 1 atau lebih akan dipaparkan
amaran apabila penukaran UTF-8 kepada 8859-1 gagal.
Can I tambah / buang fail dari an indeks?
Cuba bina swish-e dengan pilihan "--enable-incremental".
Soalan Lazim yang selebihnya digunakan pada format swish-e lalai.
Swish-e pada masa ini tidak mempunyai cara untuk menambah atau mengalih keluar item daripada indeksnya. Tetapi, indeks Swish-e
begitu cepat sehingga selalunya mungkin untuk mengindeks semula keseluruhan set dokumen apabila fail memerlukan
untuk ditambah, diubah suai atau dikeluarkan. Jika anda melayari tapak terpencil maka pertimbangkan
caching dokumen yang dimampatkan secara tempatan.
Penambahan tambahan boleh dikendalikan dalam beberapa cara, bergantung pada situasi anda.
Ia mungkin paling mudah untuk membuat satu indeks utama setiap malam (atau setiap minggu), dan kemudian
buat indeks hanya fail baharu antara kerja pengindeksan utama dan gunakan pilihan "-f".
untuk menghantar kedua-dua indeks kepada Swish-e semasa mencari.
Anda boleh menggabungkan indeks ke dalam satu indeks (bukannya menggunakan -f), tetapi ia tidak jelas
ini mempunyai sebarang kelebihan berbanding mencari berbilang indeks.
Bagaimanakah seseorang mencipta indeks tambahan?
Satu kaedah adalah dengan menggunakan suis "-N" untuk menghantar laluan fail ke Swish-e semasa pengindeksan. Ia
hanya akan mengindeks fail yang mempunyai tarikh pengubahsuaian terakhir "lebih baharu" daripada fail yang dibekalkan
dengan suis "-N".
Pilihan ini mempunyai kelemahan yang Swish-e mesti memproses setiap fail dalam setiap direktori
seolah-olah mereka akan diindeks (ujian untuk "-N" dilakukan terakhir sebelum pengindeksan
kandungan fail bermula dan selepas semua ujian lain pada fail selesai) --
semua itu hanya untuk mencari beberapa fail baharu.
Selain itu, jika anda menggunakan fail indeks Swish-e sebagai fail yang dihantar ke "-N" mungkin terdapat fail yang
telah ditambahkan selepas pengindeksan dimulakan, tetapi sebelum fail indeks ditulis. Ini boleh
mengakibatkan fail tidak ditambahkan pada indeks.
Pilihan lain ialah mengekalkan pepohon direktori selari yang mengandungi pautan sym yang menunjuk ke
fail utama. Apabila fail baharu ditambah (atau ditukar) pada pokok direktori utama anda
buat symlink ke fail sebenar dalam pepohon direktori selari. Kemudian hanya indeks
direktori symlink untuk menjana indeks tambahan.
Pilihan ini mempunyai kelemahan yang anda perlukan untuk mempunyai program pusat yang mencipta
fail baharu yang juga boleh mencipta symlinks. Tetapi, pengindeksan agak pantas sejak Swish-e
hanya perlu melihat fail yang perlu diindeks. Apabila anda menjalankan pengindeksan penuh anda
hanya nyahpaut (padam) semua pautan sym.
Kedua-dua kaedah ini mempunyai masalah di mana fail boleh berakhir dalam kedua-dua indeks, atau fail berada
ditinggalkan daripada indeks. Penggunaan kunci fail semasa mengindeks, dan carian cincang semasa carian
boleh membantu mengelakkan masalah ini.
I menjalankan keluar of memori cuba kepada indeks my fail.
Memang benar pengindeksan boleh mengambil banyak memori! Swish-e sangat pantas di
pengindeksan, tetapi itu datang dengan kos ingatan.
Jawapan terbaik ialah memasang lebih banyak memori.
Pilihan lain ialah gunakan suis "-e". Ini akan memerlukan kurang memori, tetapi pengindeksan akan
mengambil masa yang lebih lama kerana tidak semua data akan disimpan dalam ingatan semasa mengindeks. Apatah lagi ingatan
dan berapa lama lagi masa bergantung pada dokumen yang anda indekskan, dan perkakasan itu
anda menggunakan.
Berikut ialah contoh mengindeks semua fail .html dalam /usr/doc pada Linux. Contoh pertama ini ialah
tanpa "-e" dan menggunakan kira-kira 84M memori:
270279 perkataan unik diindeks.
23841 fail diindeks. 177640166 jumlah bait.
Masa berlalu: 00:04:45 Masa CPU: 00:03:19
Ini adalah bersama "-e", dan menggunakan kira-kira 26M atau memori:
270279 perkataan unik diindeks.
23841 fail diindeks. 177640166 jumlah bait.
Masa berlalu: 00:06:43 Masa CPU: 00:04:12
Anda juga boleh membina beberapa indeks yang lebih kecil dan kemudian bergabung bersama dengan "-M". menggunakan
"-e" semasa penggabungan akan menjimatkan memori.
Akhir sekali, jika anda membina beberapa indeks yang lebih kecil, anda boleh menentukan lebih daripada satu indeks
apabila mencari dengan menggunakan suis "-f". Mengisih set hasil besar mengikut harta akan menjadi
lebih perlahan apabila menentukan berbilang fail indeks semasa mencari.
"juga banyak membuka fail" apabila pengindeksan bersama -e pilihan
Sesetengah platform melaporkan "terlalu banyak fail terbuka" apabila menggunakan pilihan ekonomi -e. -e
ciri menggunakan banyak fail sementara (seperti 377) ditambah dengan fail indeks dan ini mungkin
melebihi had sistem anda.
Bergantung pada platform anda, anda mungkin perlu menetapkan "ulimit" atau "unlimit".
Sebagai contoh, di bawah Linux bash shell:
$ ulimit -n 1024
Atau di bawah Sparc lama
% fail terbuka tanpa had
My sistem admin berkata Swish-e menggunakan tinggi banyak of yang CPU!
Itu satu perkara yang baik! CPU mahal tu kononnya sibuk.
Pengindeksan memerlukan banyak kerja -- untuk membuat pengindeksan pantas kebanyakan kerja dilakukan dalam ingatan
yang mengurangkan jumlah masa Swish-e sedang menunggu pada I/O. Tetapi, ada dua perkara yang awak
boleh cuba:
Pilihan "-e" akan menjalankan Swish-e dalam mod ekonomi, yang menggunakan cakera untuk menyimpan data semasa
pengindeksan. Ini menjadikan Swish-e berjalan agak perlahan, tetapi juga menggunakan kurang memori. Sejak itu
menulis ke cakera dengan lebih kerap ia akan menghabiskan lebih banyak masa menunggu pada I/O dan kurang masa masuk
CPU. Mungkin.
Perkara lain ialah hanya menurunkan keutamaan kerja menggunakan baik(1) perintah:
/bin/nice -15 swish-e -c search.conf
Jika bimbang tentang masa mencari, pastikan anda menggunakan suis -b dan -m kepada sahaja
kembalikan halaman pada satu masa. Jika anda tahu bahawa set keputusan anda akan menjadi besar, dan anda
ingin memulangkan hasil satu halaman pada satu masa, dan itu selalunya menggandakan banyak halaman yang sama
pertanyaan akan diminta, anda mungkin bijak untuk meminta semua dokumen pada yang pertama
permintaan, dan kemudian cache hasilnya ke fail sementara. Modul perl Fail::Cache
menjadikan ini sangat mudah untuk dicapai.
Labah-labah
Cara boleh I indeks dokumen on a web pelayan?
Jika boleh, gunakan kaedah sistem fail "-S fs" pengindeksan untuk mengindeks dokumen dalam web anda
kawasan sistem fail. Ini mengelakkan overhed melayari pelayan web dan banyak lagi
lebih pantas. ("-S fs" ialah kaedah lalai jika "-S" tidak dinyatakan).
Jika ini mustahil (pelayan web bukan tempatan, atau dokumen secara dinamik
dihasilkan), Swish-e menyediakan dua kaedah labah-labah. Pertama, ia termasuk kaedah http
mengindeks "-S http". Beberapa arahan konfigurasi khas tersedia itu
mengawal labah-labah (lihat "Arahan untuk Kaedah Akses HTTP Sahaja" dalam SWISH-CONFIG). A
skrip pembantu perl (swishspider) disertakan dalam src direktori untuk membantu dengan labah-labah
pelayan web. Terdapat contoh konfigurasi untuk labah-labah dalam conf direktori.
Pada Swish-e 2.2, terdapat sumber dokumen "prog" tujuan umum di mana program boleh
suapan dokumen kepadanya untuk pengindeksan. Beberapa contoh program boleh didapati dalam
direktori "prog-bin", termasuk program untuk pelayan web labah-labah. Spider.pl yang disediakan
program berciri penuh dan mudah disesuaikan.
Kelebihan ciri sumber dokumen "prog" berbanding kaedah "http" ialah
program hanya dilaksanakan sekali, di mana program swishspider.pl digunakan dalam "http"
kaedah dilaksanakan sekali untuk setiap dokumen dibaca daripada pelayan web. Percabangan daripada
Swish-e dan penyusunan skrip perl boleh menjadi agak mahal, mengikut masa.
Kelebihan lain program "spider.pl" ialah ia mudah dan cekap untuk ditambah
penapisan (seperti untuk dokumen PDF atau MS Word) terus ke dalam konfigurasi spider.pl dan
ia termasuk ciri seperti semakan MD5 untuk mengelakkan pengindeksan pendua, pilihan untuk dielakkan
gelabah beberapa fail, atau indeks tetapi elakkan gelabah. Dan kerana ia adalah program perl, ada
tiada had pada ciri yang boleh anda tambahkan.
Mengapa tidak berdesing melaporkan "./swishspider: tidak ditemui"?
Adakah fail swishspider wujud di mana mesej ralat dipaparkan? Jika tidak, sama ada tetapkan
pilihan konfigurasi SpiderDirectory untuk menunjuk ke direktori di mana swishspider
program ditemui, atau letakkan swishspider program dalam direktori semasa semasa berjalan
swish-e.
Jika anda menjalankan Windows, pastikan "perl" berada di laluan anda. Cuba taip perl daripada
arahan prompt.
Jika anda tidak menjalankan tetingkap, pastikan bahawa baris shebang (baris pertama bagi
program swishspider yang bermula dengan #!) menunjuk ke lokasi perl yang betul.
Biasanya ini akan berlaku /usr/bin/perl or /usr/local/bin/perl. Juga, pastikan anda
telah melaksanakan dan membaca kebenaran pada swishspider.
. swishspider skrip perl hanya digunakan dengan kaedah pengindeksan -S http.
Saya menggunakan yang spider.pl program kepada labah-labah my web tapak, tetapi beberapa besar fail adalah tidak
diindeks.
Program "spider.pl" mempunyai had lalai saiz fail 5MB. Ini boleh diubah dengan
tetapan parameter "max_size". Lihat "perldoc spider.pl" untuk mendapatkan maklumat lanjut.
I masih tidak berfikir semua my web muka surat adalah menjadi diindeks.
. spider.pl program mempunyai beberapa suis penyahpepijatan dan boleh menjadi agak bertele-tele
memberitahu anda apa yang berlaku, dan mengapa. Lihat "perldoc spider.pl" untuk mendapatkan arahan.
Swish is tidak gelabah Javascript pautan!
Swish tidak boleh mengikuti pautan yang dijana oleh Javascript, kerana ia dijana oleh penyemak imbas
dan bukan sebahagian daripada dokumen.
Cara do I labah-labah lain laman web and menggabungkan it bersama my sendiri (sistem fail) indeks?
Anda boleh sama ada menggabungkan "-M" dua indeks ke dalam satu indeks, atau gunakan "-f" untuk menentukan lebih banyak
daripada satu indeks semasa mencari.
Anda akan mendapat hasil yang lebih baik dengan kaedah "-f".
Mencari
Cara do I menghadkan carian kepada hanya bahagian of yang indeks?
Jika anda boleh mengenal pasti "bahagian" indeks anda dengan nama laluan, anda mempunyai dua pilihan.
Pilihan pertama ialah dengan mengindeks laluan dokumen. Tambahkan ini pada konfigurasi anda:
MetaNames swishdocpath
Kini anda boleh mencari perkataan atau frasa dalam nama laluan:
swish-e -w 'foo AND swishdocpath=(jualan)'
Jadi itu hanya akan mencari dokumen dengan perkataan "foo" dan di mana laluan fail mengandungi
"jualan". Itu mungkin tidak berfungsi sebaik yang anda suka, walaupun, kerana kedua-dua laluan ini akan berlaku
padanan:
/web/sales/products/index.html
/web/accounting/private/sales_we_messed_up.html
Ini boleh diselesaikan dengan mencari dengan frasa (dengan mengandaikan "/" bukan WordCharacter):
swish-e -w 'foo AND swishdocpath=("/web/sales/")'
swish-e -w 'foo AND swishdocpath=("jualan web")' (perkara yang sama)
Pilihan kedua adalah lebih berkuasa. Dengan arahan "ExtractPath" anda boleh menggunakan a
ungkapan biasa untuk mengeluarkan sub-set laluan dan menyimpannya sebagai meta yang berasingan
nama:
Jabatan MetaNames
Regex jabatan ExtractPath !^/web/([^/]+).+$!$1/
Yang mengatakan padankan laluan yang bermula dengan "/web/" dan keluarkan semuanya selepas itu
kepada, tetapi tidak termasuk "/" seterusnya dan simpan dalam pembolehubah $1, dan kemudian padankan semuanya
dari "/" seterusnya. Kemudian gantikan keseluruhan rentetan padanan dengan $1. Dan itu mendapat
diindeks sebagai nama meta "jabatan".
Kini anda boleh mencari seperti:
swish-e -w 'foo DAN jabatan=jualan'
dan pastikan anda hanya akan memadankan dokumen dalam laluan /www/sales/*. Perhatikan bahawa
anda boleh memetakan kawasan yang sama sekali berbeza dalam sistem fail anda kepada nama meta yang sama:
# benderakan halaman khusus pemasaran
Regex jabatan ExtractPath !^/web/(pemasaran⎪jualan)/.+$!pemasaran/
ExtractPath department regex !^/internal/marketing/.+$!marketing/
# benderakan halaman jabatan teknikal
Regex jabatan ExtractPath !^/web/(tech⎪bugs)/.+$!tech/
Akhir sekali, jika anda mempunyai sesuatu yang lebih rumit, gunakan "-S prog" dan tulis program perl atau
gunakan penapis untuk menetapkan tag meta semasa memproses setiap fail.
Cara is kedudukan dikira?
Nilai sifat "swishrank" dikira berdasarkan Skim Kedudukan (atau algoritma) yang mana
anda telah memilih. Dalam perbincangan ini, bila-bila masa perkataan mewah digunakan, anda harus berunding
kod sebenar untuk butiran lanjut. Lagipun, ia adalah sumber terbuka.
Perkara yang boleh anda lakukan untuk mempengaruhi kedudukan:
MetaNamesRank
Anda boleh mengkonfigurasi indeks anda untuk berat sebelah nilai metaname tertentu lebih atau kurang daripada yang lain.
Lihat pilihan konfigurasi "MetaNamesRank" dalam SWISH-CONFIG.
AbaikanTotalWordCountWhenRanking
Tetapkan kepada 1 (lalai) atau 0 dalam fail konfigurasi anda. Lihat SWISH-CONFIG. PERHATIAN: Anda mesti menetapkan
ini kepada 0 untuk menggunakan Skim Kedudukan IDF.
struktur
Kedudukan setiap istilah dalam setiap dokumen HTML diberikan nilai struktur berdasarkan
konteks di mana perkataan itu muncul. Nilai struktur digunakan untuk mengembang secara buatan
kekerapan setiap istilah dalam dokumen tertentu itu. Nilai struktur ini ialah
ditakrifkan dalam config.h:
#define RANK_TITLE 7
#define RANK_HEADER 5
#define RANK_META 3
#define RANK_COMMENTS 1
#define RANK_EMPHASIZED 0
Sebagai contoh, jika perkataan "foo" muncul dalam tajuk dokumen, Skim akan
layan dokumen itu seolah-olah "foo" muncul 7 kali tambahan.
Semua Skim berkongsi ciri-ciri berikut:
DAN carian
Nilai kedudukan dipuratakan untuk semua istilah DAN. Istilah dalam set kurungan ()
dipuratakan sebagai satu istilah (ini adalah kelemahan yang diakui dan berada pada TODO
senarai).
ATAU carian
Nilai pangkat dijumlahkan dan kemudian digandakan untuk setiap pasangan istilah ATAU. Ini mengakibatkan
kedudukan yang lebih tinggi untuk dokumen yang mempunyai berbilang istilah ATAU.
pangkat berskala
Selepas skor kedudukan mentah dokumen dikira, skor kedudukan akhir dikira
menggunakan fungsi "log()" yang mewah. Semua dokumen kemudiannya diskalakan dengan skor asas
sebanyak 1000. Oleh itu, dokumen kedudukan teratas akan sentiasa mempunyai nilai "swishrank" sebanyak
1000.
Berikut ialah gambaran ringkas tentang cara Skim yang berbeza berfungsi. Nombor dalam kurungan
selepas nama ialah nilai untuk menggunakan skema itu dengan "swish-e -R" atau "RankScheme()".
Lalai (0)
Skim kedudukan lalai mempertimbangkan bilangan kali istilah muncul dalam dokumen
(frekuensi), MetaNamesRank dan nilai struktur. Pangkat mungkin diringkaskan
sebagai:
DocRank = Jumlah ( struktur + metabias )
Pertimbangkan output ini dengan set pembolehubah DEBUG_RANK pada masa penyusunan:
Skim Kedudukan: 0
Entri perkataan 0 pada kedudukan 6 mempunyai struktur 7
Entri perkataan 1 pada kedudukan 64 mempunyai struktur 41
Entri perkataan 2 pada kedudukan 71 mempunyai struktur 9
Entri perkataan 3 pada kedudukan 132 mempunyai struktur 9
Entri perkataan 4 pada kedudukan 154 mempunyai struktur 9
Entri perkataan 5 pada kedudukan 423 mempunyai struktur 73
Entri perkataan 6 pada kedudukan 541 mempunyai struktur 73
Entri perkataan 7 pada kedudukan 662 mempunyai struktur 73
Nombor fail: 1104. Kedudukan Mentah: 21. Kekerapan: 8 peringkat berskala: 30445
Pengiraan struktur:
struct 0x7 = kiraan 1 ( FAIL TAJUK KEPALA ) x peta kedudukan 8 = 8
struct 0x9 = kiraan 3 ( FAIL BADAN ) x peta kedudukan 1 = 3
struct 0x29 = kiraan 1 ( FAIL BADAN TAJUK ) x peta kedudukan 6 = 6
struct 0x49 = kiraan 3 ( EM BODY FILE ) x peta kedudukan 1 = 3
Setiap contoh perkataan bermula dengan skor asas 1. Kemudian untuk setiap contoh anda
perkataan, jumlah berjalan diambil daripada nilai struktur kedudukan perkataan itu ditambah sebarang
berat sebelah yang telah anda konfigurasikan. Dalam contoh di atas, pangkat mentah ialah "1 + 8 + 3 + 6 + 3 =
21 ".
Pertimbangkan baris ini:
struct 0x7 = kiraan 1 ( FAIL TAJUK KEPALA ) x peta kedudukan 8 = 8
Ini bermakna terdapat satu contoh perkataan kami dalam tajuk fail. Ia adalah konteks
berada dalam set tag , di dalam . adalah yang paling spesifik
struktur, jadi ia mendapat skor RANK_TITLE: 7. Kedudukan asas 1 campur struktur
skor 7 sama dengan 8. Jika terdapat dua contoh perkataan ini dalam tajuk, maka
skornya ialah "8 + 8 = 16".
IDF (1)
IDF ialah singkatan dari Inverse Document Frequency. Itulah lingo kedudukan yang menarik untuk diambil
mengambil kira jumlah kekerapan istilah merentas keseluruhan indeks, sebagai tambahan kepada
kekerapan istilah dalam satu dokumen. Kedudukan IDF juga menggunakan ketumpatan relatif a
perkataan dalam dokumen untuk menilai kaitannya. Perkataan yang lebih kerap muncul dalam doc make
kedudukan dokumen itu lebih tinggi dan dokumen yang lebih panjang tidak ditimbang lebih tinggi daripada dokumen yang lebih pendek.
Skim IDF mungkin diringkaskan sebagai:
DocRank = Jumlah ( ketumpatan * idf * ( struktur + metabias ) )
Pertimbangkan output ini daripada DEBUG_RANK:
Skim Kedudukan: 1
Nombor fail: 1104 Skor Perkataan: 1 Kekerapan: 8 Jumlah fail: 1451
Jumlah kekerapan perkataan: 108 IDF: 2564
Jumlah perkataan: 1145877 Perkataan diindeks dalam dokumen ini: 562
Purata perkataan: 789 Ketumpatan: 1120 Berat Perkataan: 28716
Entri perkataan 0 pada kedudukan 6 mempunyai struktur 7
Entri perkataan 1 pada kedudukan 64 mempunyai struktur 41
Entri perkataan 2 pada kedudukan 71 mempunyai struktur 9
Entri perkataan 3 pada kedudukan 132 mempunyai struktur 9
Entri perkataan 4 pada kedudukan 154 mempunyai struktur 9
Entri perkataan 5 pada kedudukan 423 mempunyai struktur 73
Entri perkataan 6 pada kedudukan 541 mempunyai struktur 73
Entri perkataan 7 pada kedudukan 662 mempunyai struktur 73
Kedudukan selepas pemberat IDF: 574321
pangkat berskala: 132609
Pengiraan struktur:
struct 0x7 = kiraan 1 ( FAIL TAJUK KEPALA ) x peta kedudukan 8 = 8
struct 0x9 = kiraan 3 ( FAIL BADAN ) x peta kedudukan 1 = 3
struct 0x29 = kiraan 1 ( FAIL BADAN TAJUK ) x peta kedudukan 6 = 6
struct 0x49 = kiraan 3 ( EM BODY FILE ) x peta kedudukan 1 = 3
Ia serupa dengan Skim lalai, tetapi perhatikan bagaimana jumlah bilangan fail dalam
indeks dan jumlah kekerapan perkataan (berbanding dengan kekerapan dokumen) adalah kedua-duanya
sebahagian daripada persamaan.
Kedudukan adalah subjek yang rumit. SWISH-E membolehkan lebih banyak Skim Kedudukan dibangunkan
dan bereksperimen dengan, menggunakan pilihan -R (daripada arahan swish-e) dan RankScheme
(lihat dokumentasi API). Eksperimen dan kongsi penemuan anda melalui senarai perbincangan.
Cara boleh I menghadkan carian kepada yang tajuk, badan, or komen?
Gunakan suis "-t".
I tidak boleh menghadkan carian kepada tajuk/badan/komen.
Atau, I tidak boleh cari bersama meta nama, semua yang nama adalah diindeks as "kosong".
Semak dalam fail config.h jika #define INDEXTAGS ditetapkan kepada 1. Jika ya, tukarkannya kepada 0,
susun semula, dan indeks semula. Apabila INDEXTAGS ialah 1, SEMUA teg diindeks sebagai teks biasa,
iaitu anda mengindeks "tajuk", "h1", dan seterusnya, DAN mereka kehilangan makna pengindeksan mereka. Jika
INDEXTAGS ditetapkan kepada 0, anda masih akan mengindeks teg meta dan ulasan, melainkan anda mempunyai
dinyatakan sebaliknya dalam fail konfigurasi pengguna dengan arahan IndexComments.
Juga, semak tetapan "UndefinedMetaTags" dalam fail konfigurasi anda.
Saya sudah cuba berlari yang dimasukkan CGI skrip and I mendapatkan a "Dalaman Server Ralat"
Menyahpepijat skrip CGI berada di luar skop dokumen ini. Ralat Pelayan Dalaman
pada asasnya bermaksud "semak log pelayan web untuk mendapatkan mesej ralat", kerana ia boleh membawa maksud buruk
baris shebang (#!), modul perl yang hilang, ralat pemindahan FTP, atau hanya ralat dalam
program. Skrip CGI swish.cgi dalam contoh direktori mengandungi beberapa penyahpepijatan
cadangan. Taip "perldoc swish.cgi" untuk maklumat.
Terdapat juga banyak, banyak Soalan Lazim CGI yang terdapat di Internet. Carian web pantas sepatutnya
menawarkan bantuan. Sebagai langkah terakhir anda mungkin meminta bantuan webadmin anda...
Bila I cubalah kepada pandangan yang swish.cgi halaman I lihat yang kandungan of yang Perl program.
Pelayan web anda tidak dikonfigurasikan untuk menjalankan program sebagai skrip CGI. Masalah ini adalah
diterangkan dalam "perldoc swish.cgi".
Cara do I membuat Swish-e menyerlahkan perkataan in cari hasil?
Jawapan pendek:
Gunakan skrip swish.cgi atau search.cgi yang dibekalkan terletak dalam contoh direktori.
Jawapan panjang:
Swish-e tidak boleh kerana ia tidak mempunyai akses kepada dokumen sumber apabila kembali
keputusan, sudah tentu. Tetapi program bahagian hadapan ciptaan anda boleh menyerlahkan istilah. awak
program boleh membuka dokumen sumber dan kemudian menggunakan ungkapan biasa untuk menggantikan
istilah carian dengan perkataan yang diserlahkan atau ditebalkan.
Tetapi, itu akan gagal dengan semua kecuali dokumen sumber yang paling mudah. Untuk dokumen HTML,
sebagai contoh, anda mesti menghuraikan dokumen ke dalam perkataan dan tag (dan ulasan). Satu perkataan awak
ingin diserlahkan mungkin merangkumi berbilang tag HTML, atau menjadi perkataan dalam URL dan anda mahu
serlahkan keseluruhan teks pautan.
Modul Perl seperti HTML::Parser dan XML::Parser memungkinkan pengekstrakan perkataan. Seterusnya,
anda perlu mempertimbangkan bahawa Swish-e menggunakan tetapan seperti WordCharacters, BeginCharacters,
EndCharacters, IgnoreFirstChar dan IgnoreLast, char untuk mentakrifkan "perkataan". Iaitu, awak
tidak boleh menganggap bahawa rentetan aksara dengan ruang putih pada setiap sisi adalah perkataan.
Kemudian perkara seperti TranslateCharacters dan Entiti HTML boleh mengubah perkataan sumber menjadi
sesuatu yang lain, setakat Swish-e berkenaan. Akhirnya, carian boleh dihadkan oleh
metanames, jadi anda mungkin perlu mengehadkan penyerlahan anda kepada bahagian sumber sahaja
dokumen. Lemparkan carian frasa dan kata henti ke dalam persamaan dan anda boleh melihat bahawa ia adalah
bukan masalah remeh untuk diselesaikan.
Semua harapan tidak hilang, fikir, kerana Swish-e memberikan sedikit bantuan. Menggunakan pilihan "-H".
ia akan mengembalikan dalam pengepala tetapan indeks (atau indeks) semasa untuk WordCharacters
(dan lain-lain) diperlukan untuk menghuraikan dokumen sumber anda semasa ia menghuraikannya semasa pengindeksan,
dan akan mengembalikan pengepala "Parsed Words:" yang akan menunjukkan cara ia menghuraikan pertanyaan
secara dalaman. Jika anda menggunakan pengindeksan kabur (pembentukan perkataan, soundex atau metafon) maka anda
juga perlu membendung setiap perkataan dalam dokumen anda sebelum membandingkan dengan "Parsed
Perkataan:" dikembalikan oleh Swish-e.
Kod berpunca Swish-e tersedia sama ada dengan menggunakan modul Perl Swish-e
(SWISH::API) atau perpustakaan C (disertakan dengan pengedaran swish-e), atau dengan menggunakan
SWISH::Modul stemmer tersedia pada CPAN. Juga pada CPAN ialah modul
Teks::DoubleMetaphone. Menggunakan SWISH::API mungkin menyediakan sokongan stem yang terbaik.
Do Penapis kesan yang prestasi semasa cari?
Tidak. Penapis (FileFilter atau melalui kaedah "prog") hanya digunakan untuk membina indeks carian
pangkalan data. Semasa permintaan carian tidak akan ada panggilan penapis.
I mempunyai membaca yang Soalan Lazim tetapi I masih mempunyai soalan mengenai menggunakan Swish-e.
Senarai perbincangan Swish-e ialah tempat untuk dikunjungi. http://swish-e.org/. Tolong jangan email
pemaju secara langsung. Senarai adalah tempat terbaik untuk bertanya soalan.
Sebelum post sila baca SOALAN DAN PENYELESAIAN MASALAH terletak di halaman PASANG.
Anda juga harus mencari arkib senarai perbincangan Swish-e yang boleh didapati di
laman web swish-e.
Ringkasnya, pastikan anda memasukkan perkara berikut apabila meminta bantuan.
* Versi swish-e (./swish-e -V)
* Perkara yang anda indekskan (dan mungkin sampel), dan bilangan fail
* Fail konfigurasi Swish-e anda
* Sebarang mesej ralat yang dilaporkan oleh Swish-e
Dokumen Info
$Id: SWISH-FAQ.pod 2147 2008-07-21 02:48:55Z karpet $
.
Gunakan SWISH-FAQ dalam talian menggunakan perkhidmatan onworks.net