EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

SWISH-FAQ - Online în cloud

Rulați SWISH-FAQ în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda SWISH-FAQ care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


SWISH-FAQ - Întrebările frecvente Swish-e. Răspunsuri la întrebări comune

ÎNSCRIERI


Lista întrebărilor frecvente și la care se răspunde. Vă rugăm să examinați acest document înainte de a cere
întrebări de pe lista de discuții Swish-e.

General Întrebări

Ce is Swish-e?

Swish-e este Saplicare Web Iindexare Ssistem pentru Hoameni - Enfavorizat. Cu ea, puteți rapid și
indexați cu ușurință directoare de fișiere sau site-uri web la distanță și căutați în indecșii generați
cuvinte si fraze.

Asa de, is Swish-e a căutare motor?

Ei bine, da. Probabil cea mai comună utilizare a Swish-e este de a oferi un motor de căutare pentru web
site-uri. Distribuția Swish-e include scripturi CGI care pot fi folosite împreună cu ea pentru a adăuga un
căutare motor pentru site-ul dvs. web. Scripturile CGI pot fi găsite în exemplu directorul de
pachetul de distribuție. Vezi README fișier pentru informații despre scripturi.

Dar Swish-e poate fi folosit și pentru a indexa tot felul de date, cum ar fi mesaje de e-mail, date
stocate într-un sistem de gestionare a bazelor de date relaționale, documente XML sau documente precum
Documente Word și PDF -- sau orice combinație a acestor surse în același timp. Căutări
poate fi limitată la câmpuri sau MetaNume într-un document sau limitat la zone din cadrul unui
Document HTML (de exemplu, corp, titlu). Alte programe decât aplicațiile CGI pot folosi Swish-e,
de asemenea.

I upgrade-ul if Sunt deja funcţionare a precedent versiune of Swish-e?

Un număr mare de remedieri de erori, adăugiri de caracteristici și corecții logice au fost făcute în versiune
2.2. În plus, viteza de indexare a fost îmbunătățită drastic (rapoarte despre timpii de indexare
schimbându-se de la patru ore la 5 minute) și părțile majore ale analizoarelor de indexare și căutare
au fost rescrise. Există opțiuni de depanare mai bune, formate de ieșire îmbunătățite și multe altele
metadatele documentului (de exemplu data ultimei modificări, rezumatul documentului), opțiuni pentru indexare de la
surse de date externe și spidering mai rapid pentru a numi doar câteva modificări. (Vezi SCHIMBĂRI
fișier pentru mai multe informații.

Deoarece s-au depus atât de multe eforturi în versiunea 2.2, suportul pentru versiunile anterioare va fi
probabil să fie limitate.

Sunt acolo binar distribuții disponibil pentru Swish-e on platformă foo?

Foo? Ei bine, da, există câteva distribuții binare disponibile. Vă rugăm să consultați web-ul Swish-e
site pentru o listă la http://swish-e.org/.

În general, se recomandă să construiți Swish-e de la sursă, dacă este posibil.

Do I nevoie la reindexează my teren fiecare timp I upgrade-ul la a nou Swish-e versiune?

Uneori s-ar putea să nu fie strict necesar, dar din moment ce nu știi cu adevărat dacă ceva
în index sa schimbat, este o regulă bună să reindexați.

Ceea ce este il avantaj of folosind il libxml2 bibliotecă pentru analizare HTML?

Swish-e poate fi legat cu libxml2, o bibliotecă pentru lucrul cu documente HTML și XML.
Swish-e poate folosi libxml2 pentru analizarea documentelor HTML și XML.

Analizorul libxml2 este un analizator mai bun decât analizatorul HTML încorporat al lui Swish-e. Oferă mai mult
caracteristici și face o treabă mult mai bună la extragerea textului dintr-o pagină web. În
În plus, puteți utiliza setarea de configurare „ParserWarningLevel” pentru a găsi structura
erori în documentele dvs. care ar putea (și ar putea cu parserul HTML al Swish-e) să cauzeze documente
să fie indexate incorect.

Libxml2 nu este necesar, dar este recomandat pentru analizarea documentelor HTML. este
recomandat și pentru analiza XML, deoarece oferă mult mai multe funcții decât Expat intern
parser xml.c.

Analizatorul HTML intern va avea suport limitat și are o serie de erori. Pentru
De exemplu, entitățile HTML pot să nu fie întotdeauna convertite corect și proprietățile nu au
entități convertite. Analizatorul intern tinde să devină confuz atunci când este analizat HTML nevalid
unde analizatorul libxml2 nu se confundă la fel de des. Structura este mai bine detectată
cu parserul libxml2.

Dacă utilizați modulul Perl (interfața C cu biblioteca Swish-e), poate doriți
construiți două versiuni de Swish-e, una cu biblioteca libxml2 legată în binar și una
fără și construiți modulul Perl pe bibliotecă fără codul libxml2. Aceasta este
pentru a economisi spațiu în bibliotecă. Să sperăm că, într-o zi, biblioteca va fi împărțită în curând
cod de indexare și căutare (voluntari sunt bineveniți).

Face Swish-e include a CGI interfață?

Da. Cam.

Sunt incluse două exemple de scripturi CGI, swish.cgi și search.cgi. Ambele sunt instalate la
$prefix/lib/swish-e.

Ambele necesită puțină muncă pentru configurare și utilizare. Swish.cgi este probabil ceea ce vor face majoritatea oamenilor
doriți să utilizați deoarece conține mai multe funcții. Search.cgi este pentru cei care doresc să înceapă
un mic script și personalizați-l pentru a se potrivi nevoilor lor.

Un exemplu de utilizare a swish.cgi este dat în pagina de manual INSTALARE și acesta este swish.cgi
documentație. Așa cum este adesea cazul, va fi mai ușor de utilizat dacă citiți mai întâi
documentație.

Vă rugăm să fiți atenți cu privire la scripturile CGI găsite pe Internet pentru a fi utilizate cu Swish-e. Unii sunt
nesigur.

Exemplele de script-uri CGI incluse au fost concepute având în vedere securitatea. Indiferent, tu ești
încurajați să solicitați expertului dvs. local în Perl să o revizuiască (și toate celelalte scripturi CGI pe care le utilizați)
înainte de a-l introduce în producție. Aceasta este doar o politică bună de urmat.

Cum sigur is Swish-e?

Nu cunoaștem probleme de securitate cu utilizarea Swish-e. S-a acordat o atenție deosebită
în ceea ce privește problemele de securitate obișnuite, cum ar fi depășirile de buffer la programarea Swish-e.

Cea mai probabilă problemă de securitate cu Swish-e este atunci când este rulat printr-un CGI prost scris
interfata. Acest lucru nu se limitează la scripturile CGI scrise în Perl, deoarece este la fel de ușor
scrieți un script CGI nesigur în C, Java, PHP sau Python. O sursă bună de informare este
incluse cu distribuția Perl. Tastați „perldoc perlsec” la promptul local pentru mai multe
informație. Un alt document de citit obligatoriu se află la
"http://www.w3.org/Security/faq/wwwsf4.html".

Rețineți că sunt multe gratuit dar disponibile scripturi CGI nesigure și prost scrise --
chiar și unele concepute pentru a fi utilizate cu Swish-e. Vă rugăm să examinați cu atenție orice script CGI pe care îl utilizați.
Gratuitul nu este un preț atât de bun când îți piratați serverul...

I alerga Swish-e as il superutilizator (rădăcină)?

Nu niciodata.

Ce fișiere face Swish-e scrie?

Swish scrie fișierul index, desigur. Acest lucru este specificat cu „IndexFile”
directiva de configurare sau prin comutatorul de linie de comandă „-f”.

Fișierul index este de fapt o colecție de fișiere, dar toate încep cu numele fișierului
specificat cu directiva „IndexFile” sau comutatorul de linie de comandă „-f”.

De exemplu, fișierul care se termină în .recuzită conține proprietățile documentului.

La crearea fișierelor index, Swish-e adaugă extensia .temp la numele fișierelor index.
Când indexarea este completă, Swish-e redenumește .temp fișiere la fișierele index specificate de
„IndexFile” sau „-f”. Acest lucru se face astfel încât indecșii existenți să rămână neatinse până la aceasta
finalizează indexarea.

Swish-e scrie, de asemenea, fișiere temporare în unele cazuri în timpul indexării (de exemplu, „-s http”, „-s
prog" cu filtre), la îmbinare și când se utilizează "-e"). Fișierele temporare sunt create cu
il mkstemp(3) funcție (cu permisiunea 0600 pe sisteme de operare asemănătoare Unix).

Fișierele temporare sunt create în directorul specificat de variabilele de mediu
„TMPDIR” și „TMP” în această ordine. Dacă acestea nu sunt setate, swish folosește setarea
setarea de configurare TmpDir. În caz contrar, fișierul temporar va fi localizat în
directorul curent.

Putea I index PDF și MS-Word documente?

Da, puteți utiliza un Filtru pentru a converti documente în timpul indexării sau puteți utiliza un program
care „alimentează” documente către Swish-e care au fost deja convertite. Consultați „Indexare” de mai jos.

Putea I index documente on a web Server?

Da, Swish-e oferă două moduri de a indexa (păianjen) documente pe un server web. Vedea
„Spidering” mai jos.

Swish-e poate prelua documente dintr-un sistem de fișiere sau de pe un server web la distanță. Se poate
de asemenea, executați un program care returnează documentele înapoi la acesta. Acest program poate prelua
documente dintr-o bază de date, filtrați fișierele de documente comprimate, convertiți fișiere PDF, extrageți
date din arhivele de e-mail sau site-uri web spider la distanță.

Putea I punerea în aplicare a Cuvinte cheie in my documente?

Da, Swish-e poate asocia cuvinte cu MetaNume în timp ce indexați și vă puteți limita
caută aceste MetaNames în timpul căutării.

În fișierele dvs. HTML puteți pune cuvinte cheie în etichete HTML META sau în blocuri XML.

Etichetele META pot avea două formate în documentele sursă:



Și în format XML (poate fi folosit și în documente HTML când utilizați libxml2):


Unele conținut


Apoi, pentru a informa Swish-e despre existența meta numelui în documentele dvs., editați fișierul
linia din fișierul de configurare:

MetaNames DC.subiect meta1 meta2

Când căutați, puteți limita acum unii sau toți termenii de căutare la acel MetaName. De exemplu,
pentru a căuta documente care conțin cuvântul măr și care au, de asemenea, fie fructe, fie gătit
metaeticheta DC.subject.

Ce sunt document proprietăți?

O proprietate de document este de obicei date care descriu documentul. De exemplu,
proprietățile pot include numele căii unui document, data ultimei modificări, titlul sau
mărimea. Swish-e stochează proprietățile unui document în fișierul index și pot fi raportate
înapoi în rezultatele căutării.

Swish-e folosește și proprietăți pentru sortare. Puteți sorta rezultatele după unul sau mai multe
proprietăți, în ordine crescătoare sau descrescătoare.

Proprietățile pot fi definite și în documentele dvs. Fișierele HTML și XML pot specifica etichete
(vezi întrebarea anterioară) ca proprietăți. The conținut dintre aceste etichete pot fi apoi returnate
cu rezultatele căutării. Aceste proprietăți definite de utilizator pot fi utilizate și pentru sortarea căutării
rezultate.

De exemplu, dacă ați avut următoarele în documente



iar „creator” este definit ca o proprietate (vezi „PropertyNames” în SWISH-CONFIG) Swish-e poate
returnează „departamentul de contabilitate” cu rezultatul pentru acel document.

swish-e -w foo -p creator

Sau pentru sortare:

swish-e -w foo -s creator

Ceea ce este il diferenţă între MetaNume și PropertyNames?

MetaNames permite căutarea cuvintelor cheie în documentele dvs. Adică, puteți folosi MetaNames pentru
restricționați căutările la doar părți din documentele dvs.

PropertyNames, pe de altă parte, definește text care poate fi returnat cu rezultate și poate
fi folosit pentru sortare.

Ambele folosesc meta tag-uri găsite în documentele dumneavoastră (după cum se arată în cele două întrebări de mai sus) pentru a defini
textul pe care doriți să îl utilizați ca proprietate sau meta nume.

Puteți defini o etichetă ca atât o proprietate și un meta nume. De exemplu:



plasate în documente și apoi folosind setările de configurare ale:

Creator PropertyNames
Creatorul MetaNames

vă va permite să vă limitați căutările la documentele create de contabilitate:

swish-e -w 'foo and creator=(contabilitatea)'

Acesta va găsi toate documentele cu cuvântul „foo” care au, de asemenea, o metaetichetă de creator care
conține cuvântul „contabilitate”. Aceasta folosește MetaNames.

Și mai poți spune:

swish-e -w foo -p creator

care va returna toate documentele cu cuvântul „foo”, dar rezultatele vor include și
conținutul metaetichetei „creator” împreună cu rezultatele. Aceasta este utilizarea proprietăților.

De asemenea, puteți utiliza proprietăți și meta nume în același timp:

swish-e -w creator=(contabilitate sau marketing) -p creator -s creator

Care caută doar în „creator” meta nume pentru oricare dintre cuvintele „contabilitate” sau
„marketing”, tipărește conținutul conținutului „creatorului” proprietate, și sortează
rezultatele de către „creator” proprietate nume.

(Consultați și comutatorul de format de ieșire „-x” în SWISH-RUN.)

Putea Swish-e index multi-octet de caractere?

Nu. Acest lucru va necesita multă muncă pentru a se schimba. Dar, Swish-e funcționează cu caractere de opt biți,
pot fi folosite atât de multe seturi de caractere. Rețineți că apelează ANSI-C pentru a reduce() funcţie
care depinde de setarea locală curentă. Vedea localizare(7) pentru mai multe informații.

Indexarea

Cum do I trece Swish-e a listă of fișiere la index?

În prezent, nu există o directivă de configurare care să includă un fișier care conține o listă
de fișiere de indexat. Dar, există o directivă pentru a include un alt fișier de configurare.

IncludeConfigFile /path/to/other/config

Și în „/path/to/other/config” poți spune:

IndexDir fișier1 fișier2 fișier3 fișier4 fișier5 ...
Fișier IndexDir20 fișier21 fișier22

De asemenea, puteți specifica mai mult de un fișier de configurare pe linia de comandă:

./swish-e -c config_one config_two config_trei

O altă opțiune este de a crea un director cu legături simbolice ale fișierelor de indexat și
indexați doar acel director.

Cum face Swish-e ști care analizor la utilizare?

Swish poate analiza documente HTML, XML și text. Analizatorul este setat prin asocierea unui fișier
extensie cu un parser prin directiva „IndexContents”. Puteți seta analizatorul implicit
cu directiva „DefaultContents”. Dacă unui document nu i se atribuie un parser, acesta va fi
implicit la parserul HTML (HTML2 dacă este construit cu libxml2).

Puteți utiliza Filtre sau un program extern pentru a converti documente în HTML, XML sau text.

Putea I reindexează și căutare at il acelaşi timp?

Da. Începând cu versiunea 2.2, Swish-e indexează fișierele temporare și apoi redenumește fișierul
fișierele când indexarea este completă. Pe majoritatea sistemelor redenumirea este atomică. Dar, din moment ce Swish-e
de asemenea, generează mai mult de un fișier în timpul indexării, va exista o perioadă foarte scurtă de
timp între redenumirea diferitelor fișiere când indexul nu este sincronizat.

Setări în src/config.h controlați unele opțiuni legate de fișierele temporare și utilizarea acestora
în timpul indexării.

Putea I index fraze?

Expresiile sunt indexate automat. Pentru a căuta o expresie pur și simplu plasați ghilimele duble
în jurul frazei.

De exemplu:

swish-e -w „gratuit și „motor de căutare rapid””

Cum poate să I împiedica Expresii din potrivire peste propoziții?

Utilizați directiva de configurare BumpPositionCounterCharacters.

Swish-e nu este indexare a sigur cuvânt or propoziții.

Există o serie de parametri de configurare care controlează ceea ce Swish-e consideră a
„cuvânt” și are o funcție de depanare pentru a ajuta la identificarea oricăror probleme de indexare.

Directivele fișierului de configurare (SWISH-CONFIG) „WordCharacters”, „BeginCharacters”,
„EndCharacters”, „IgnoreFirstChar” și „IgnoreLastChar” sunt setările principale pe care Swish-
e folosește pentru a defini un „cuvânt”. Consultați SWISH-CONFIG și SWISH-RUN pentru detalii.

Swish-e folosește, de asemenea, valorile implicite de compilare pentru multe setări. Acestea sunt situate în
src/config.h fișier.

Utilizarea argumentelor liniei de comandă „-k”, „-v” și „-T” este utilă la depanarea acestora
Probleme. Utilizarea „-T INDEXED_WORDS” în timpul indexării va afișa fiecare cuvânt așa cum este
indexate. Ar trebui să specificați un fișier atunci când utilizați această caracteristică, deoarece poate genera multe
de ieșire.

./swish-e -c my.conf -i problem.file -T INDEXED_WORDS

De asemenea, puteți dori să indexați un singur fișier care conține cuvinte care sunt sau nu indexate
așa cum vă așteptați și utilizați -T pentru a scoate informații de depanare despre index. Un util
comanda poate fi:

./swish-e -f index.swish-e -T INDEX_FULL

După ce vedeți cum Swish-e analizează și indexează cuvintele dvs., puteți ajusta
setările de configurare menționate mai sus pentru a controla ce cuvinte sunt indexate.

O altă comandă utilă ar putea fi:

./swish-e -c my.conf -i problem.file -T PARSED_WORDS INDEXED_WORDS

Aceasta va afișa cuvintele cu spații albe analizate din document (PARSED_WORDS) și cum acestea
cuvintele sunt împărțite în cuvinte separate pentru indexare (INDEXED_WORDS).

Cum do I păstra Swish-e din indexare numere?

Swish-e indexează cuvintele așa cum sunt definite de setarea „WordCharacters”, așa cum este descris mai sus. Asa de
pentru a evita indexarea numerelor, pur și simplu eliminați cifre din setarea „WordCharacters”.

Există, de asemenea, câteva setări în src/config.h care controlează ce „cuvinte” sunt indexate. Tu
poate configura swish să nu indexeze niciodată cuvintele care sunt toate cifre, vocale sau consoane sau
care conțin mai mult decât un anumit număr consecutiv de cifre, vocale sau consoane. În
general, nu va trebui să modificați aceste setări.

De asemenea, există o caracteristică experimentală numită „IgnoreNumberChars” care vă permite
definiți un set de caractere care descriu un număr. Dacă un cuvânt este alcătuit din afară aceste
caractere nu va fi indexat.

Swish-e accidente și arsuri on a sigur fișier. Ce poate să I do?

Acest lucru nu ar trebui să se întâmple. Dacă da, vă rugăm să postați detaliile pe lista de discuții Swish-e
deci poate fi reprodus de dezvoltatori.

Între timp, puteți utiliza o directivă „FileRules” pentru a exclude un anumit nume de fișier,
sau numele căii sau titlul acesteia. Dacă există probleme serioase în indexarea anumitor tipuri de
fișiere, este posibil să nu aibă text valid în ele (pot fi fișiere binare, de exemplu). Tu
poate folosi NoContents pentru a exclude acel tip de fișier.

Swish-e va emite un avertisment dacă se găsește un caracter nul încorporat într-un document. Acest
avertismentul va fi un indiciu că încercați să indexați datele binare. Dacă ai nevoie să
fișierele binare index încearcă să găsească un program care va extrage textul (de ex siruri(1),
catdoc(1), pdftotext(1)).

Cum la I împiedica indexare of unele documente?

Când utilizați sistemul de fișiere pentru a indexa fișierele, puteți utiliza directiva „FileRules”.
În afară de „FileRules title”, „FileRules” funcționează numai cu sistemul de fișiere ("-S fs")
metoda de indexare, nu cu „-S prog” sau „-S http”.

Dacă accesați un site pe care aveți control, utilizați a robots.txt dosar în documentul dvs
rădăcină. Acesta este un mod standard de a exclude fișierele din motoarele de căutare și este complet
susținut de Swish-e. Vedea http://www.robotstxt.org/

Dacă spidering un site web cu inclus păianjen.pl program apoi adăugați toate testele necesare la
fișierul de configurare al păianjenului. Tip în directorul „prog-bin” pentru
detalii sau consultați documentația spider de pe site-ul web Swish-e. Căutați secțiunea despre
funcții de apel invers.

Dacă utilizați biblioteca libxml2 pentru analizarea HTML (care probabil sunteți), puteți utiliza și
excluderea Meta Robots din documentele dvs.:



Consultați directiva obeyRobotsNoIndex.

Cum do I împiedica indexare piese of a document?

Pentru a împiedica Swish-e să indexeze un antet, un subsol sau o bară de navigare obișnuită, ȘI sunteți
folosind libxml2 pentru analizarea HTML, atunci puteți utiliza o etichetă HTML falsă în jurul textului dorit
pentru a ignora și utiliza directiva „IgnoreMetaTags”. Acest lucru va genera un mesaj de eroare dacă
„ParserWarningLevel” este setat ca HTML nevalid.

„IgnoreMetaTags” funcționează cu documente XML (și documente HTML când se utilizează libxml2 ca
parser), dar nu cu documentele analizate de parserul text (TXT).

Dacă utilizați analizatorul libxml2 (HTML2 și XML2), atunci puteți utiliza următoarele
comentarii în documentele dvs. pentru a preveni indexarea:




și/sau acestea pot fi utilizate și:




Cum do I modifica il cale or URL-ul of il indexate documente.

Utilizați directiva de configurare „ReplaceRules” pentru a rescrie numele căilor și adresele URL. Daca esti
folosind metoda de introducere „-S prog”, puteți seta calea către orice șir.

Cum poate să I index de date din a Bază de date?

Utilizați metoda de indexare a sursei documentului „prog”. Scrieți un program pentru a extrage fișierul
date din baza de date și formatați-le ca XML, HTML sau text. Vezi exemplele din
directorul „prog-bin” și următoarea întrebare.

Cum do I index my PDF-uri, Word, și comprimat documente?

Swish-e poate analiza în mod implicit numai fișierele HTML, XML și TXT (text), dar poate crea
utilizarea de Filtre care va converti alte tipuri de fișiere, cum ar fi documente MS Word, PDF sau
gzi a comprimat fișierele într-unul dintre tipurile de fișiere pe care Swish-e le înțelege.

Vă rugăm să vedeți SWISH-CONFIG și exemplele din Filtre și coșul de filtrare director pentru mai multe
informaţii.

Consultați următoarea întrebare pentru a afla despre opțiunile de filtrare cu Swish-e.

Cum do I filtru documente?

Termenul „filtru” în Swish-e înseamnă conversia unui document de un tip (unul care
swish-e nu poate indexa direct) într-un tip pe care Swish-e îl poate indexa, și anume HTML, simplu
text sau XML. Pentru a spori confuzia, există o serie de moduri de a realiza acest lucru în
Swish-e. Deci, iată un pic de fundal.

Directiva FileFilter a fost adăugată mai întâi la swish. Această caracteristică vă permite să specificați a
program pentru a rula pentru documente care se potrivesc cu o anumită extensie de fișier. De exemplu, pentru a filtra
Fișiere PDF (fișiere care se termină în .pdf) puteți specifica setarea de configurare pentru:

FileFilter .pdf pdftotext „'%p' -”

care spune să rulați programul „pdftotext” trecându-i calea fișierului (%p) și a
liniuță (care spune pdftotext să iasă în stdout). Apoi, pentru fiecare fișier .pdf rulează Swish-e
acest program și citește în documentul filtrat din rezultatul din programul de filtrare.

Acest lucru are avantajul că este ușor de configurat - o singură linie în fișierul de configurare este tot
care este necesar pentru a adăuga filtrul în Swish-e. Dar are și o serie de probleme. Pentru
de exemplu, dacă utilizați un script Perl pentru a vă filtra, poate fi foarte lent, deoarece
scriptul de filtrare trebuie rulat (și astfel compilat) pentru fiecare document procesat. Aceasta este
exacerbată când se folosește metoda -S http, deoarece metoda -S http folosește și un script Perl
care este rulat pentru fiecare URL preluat. De asemenea, atunci când utilizați metoda de introducere -S prog (lectura
intrare dintr-un program) folosind FileFilter înseamnă că Swish-e trebuie să citească mai întâi fișierul din
programul extern și apoi scrieți fișierul într-un fișier temporar înainte de a rula
filtru.

Cu -S prog este mult mai logic să filtrezi documentul în programul respectiv
preluarea documentelor decât pentru ca swish-e să citească fișierul în memorie, scrieți-l pe a
fișier temporar și apoi rulați un program extern.

Distribuția Swish-e conține câteva exemple de programe prog -S. păianjen.pl este
păianjen web rezonabil cu funcții complete care oferă mult mai multe opțiuni decât metoda -S http.
Și este mult mai rapid decât rularea -S http, de asemenea.

Spider-ul are un fișier de configurare perl, ceea ce înseamnă că puteți adăuga corect logica de programare
în fișierul de configurare fără a edita programul spider. Un pic de logică adică
furnizată în fișierul de configurare al spiderului este o funcție „call-back” care vă permite
filtrează conținutul. Cu alte cuvinte, înainte ca păianjenul să îi transmită un document web preluat
swish pentru indexarea păianjenului poate apela o simplă subrutină în configurația păianjenului
fișierul care trece documentul și tipul de conținut al acestuia. Subrutina poate apoi să se uite la
tipul de conținut și decideți dacă documentul trebuie filtrat.

De exemplu, la procesarea unui document de tip „application/msword” apelul înapoi
subrutina ar putea apela modulul perl doc2txt.pm și un document de tip „aplicație/pdf”
ar putea folosi modulul pdf2html.pm. The prog-bin/SwishSpiderConfig.pl fișierul arată asta
de utilizare.

Acest sistem funcționează destul de bine, dar înseamnă, de asemenea, că este nevoie de mai multă muncă pentru a configura
filtre. În primul rând, trebuie să verificați în mod explicit anumite tipuri de conținut și apoi să apelați
modulul Perl adecvat și, în al doilea rând, trebuie să știți cum trebuie apelat fiecare modul și
modul în care fiecare returnează conținutul eventual modificat.

Vine SWISH::Filter.

Pentru a ușura lucrurile, a fost creat modulul SWISH::Filter Perl. Ideea acestui modul
este că există o singură interfață folosită pentru a filtra toate tipurile de documente. Deci în loc de
verificând anumite tipuri de conținut cărora le transmiteți tipul de conținut și documentul
modulul SWISH::Filter și returnează un nou tip de conținut și un document dacă a fost
filtrat. Filtrele care fac munca propriu-zisă sunt proiectate cu o interfață standard și
funcționează ca filtrul „plug-in-uri”. Adăugarea de noi filtre înseamnă doar descărcarea filtrului în a
director și nu sunt necesare modificări la fișierul de configurare al spider. Descărcați un filtru
pentru Postscript și data viitoare când executați indexarea fișierelor dvs. Postscript vor fi indexate.

Deoarece filtrele sunt standardizate, sperăm că atunci când aveți nevoie să filtrați documentele
de un anumit tip va exista deja un filtru gata pentru utilizare.

Acum, rețineți că modulele perl pot face sau nu conversia reală a unui document.
De exemplu, modulul de conversie PDF apelează programele pdfinfo și pdftotext. Acestea
programele (parte a pachetului Xpfd) trebuie instalate separat de filtre.

Fișierul de configurare spider exemplu SwishSpiderConfig.pl arată cum se utilizează
SWISH::Modul de filtrare pentru filtrare. Acest fișier este instalat la
$prefix/share/doc/swish-e/examples/prog-bin, unde $prefix este în mod normal / Usr / local pe unix-
tip mașini.

Metoda de filtrare SWISH::Filter poate fi folosită și cu metoda -S http de
indexarea. În mod implicit, swishspider programul (scriptul de ajutor Perl care preia
documente de pe web) va încerca să utilizeze modulul SWISH::Filter dacă poate fi găsit în
Calea bibliotecii Perls. Această cale este setată automat pentru spider.pl, dar nu și pentru swishspider
(pentru că ar încetini o metodă care este deja lentă și spider.pl este recomandat peste
metoda -S http).

Prin urmare, tot ceea ce este necesar pentru a utiliza acest sistem cu -S http este setarea matricei @INC
pentru a indica directorul de filtrare.

De exemplu, dacă distribuția swish-e a fost dezambalată în ~/swish-e:

PERL5LIB=~/swish-e/filtre swish-e -c conf -S http

va permite metodei -S http să utilizeze modulul SWISH::Filter.

Rețineți că, dacă nu utilizați modulul SWISH::Filter, este posibil să doriți să editați
swishspider programați și dezactivați utilizarea modulului SWISH::Filter utilizând această setare:

utilizați constanta USE_FILTERS => 0; # dezactivează SWISH::Filter

Acest lucru împiedică programul să încerce să utilizeze modulul SWISH::Filter pentru fiecare non-
URL text care este preluat. Desigur, dacă ești preocupat de viteza de indexare, ar trebui
folosiți metoda -S prog cu spider.pl în loc de -S http.

Dacă nu sunteți spidering, dar doriți totuși să utilizați modulul SWISH::Filter pentru
filtrare puteți folosi programul DirTree.pl (în $prefix/lib/swish-e). Acesta este un simplu
program care traversează sistemul de fișiere și folosește SWISH::Filter pentru filtrare.

Iată două exemple despre cum să rulați un program de filtrare, unul folosind „FileFilter” de la Swish-e
directivă, un altul utilizând un program de metodă de introducere „prog”. Vezi SwishSpiderConfig.pl fişier
pentru un exemplu de utilizare a modulului SWISH::Filter.

Aceste filtre folosesc pur și simplu programul "/bin/cat" ca filtru și indexează numai fișierele .html.

În primul rând, folosind metoda „FileFilter”, iată întregul fișier de configurare (swish.conf):

IndexDir .
IndexOnly .html
FileFilter .html "/bin/cat" "'%p'"

și indexați cu comanda

swish-e -c swish.conf -v 1

Acum, același lucru cu utilizarea metodei de introducere a sursei documentului „-S prog” și a unui Perl
program numit catfilter.pl. Puteți vedea că este mult mai multă muncă decât folosirea
Metoda „FileFilter” de mai sus, dar oferă un loc pentru a face procesări suplimentare. In acest
de exemplu, metoda „prog” este doar puțin mai rapidă. Dar dacă ai nevoie de un script perl
rulați ca FileFilter, apoi „prog” va fi semnificativ mai rapid.

#!/usr/local/bin/perl -w
folosiți strict;
utilizați File::Find; # pentru recursarea unui arbore de directoare

$/ = undef;
găsi(
{ wanted => \&wed, no_chdir => 1, },
'.',
);

sub dorit {
returnează dacă -d;
returnează dacă /\.html$/;

my $mtime = (stat)[9];

my $child = open( FH, '-⎪' );
die "Nu s-a putut bifurca $!" dacă nu este definit $child;
executiv '/bin/cat', $_ dacă nu $copil;

conținutul meu $ = ;
my $size = lungime $conținut;

imprima <
Lungimea conținutului: $size
Last-Mtime: $mtime
Nume cale: $_

EOF

imprimare ;
}

Și indexați cu comanda:

swish-e -S prog -i ./catfilter.pl -v 1

Acest exemplu probabil nu va funcționa sub Windows din cauza deschiderii „-⎪”. Un simplu tub
open poate funcționa la fel de bine:

Adică înlocuiți:

my $child = open( FH, '-⎪' );
die "Nu s-a putut bifurca $!" dacă nu este definit $child;
executiv '/bin/cat', $_ dacă nu $copil;

cu asta:

deschis( FH, "/bin/cat $_ ⎪" ) sau mor $!;

Perl va încerca să evite rularea comenzii prin shell dacă meta caracterele nu sunt
a trecut în aer liber. Consultați „perldoc -f open” pentru mai multe informații.

Hei, dar I doar vrea la ști cum la index PDF documente!

Vezi exemplele din conf directorul și comentariile din SwishSpiderConfig.pl fișier.

Consultați întrebarea anterioară pentru detalii despre filtrare. Metoda pe care decizi să o folosești va
depinde de cât de repede vrei să indexezi și de nivelul tău de confort cu utilizarea modulelor Perl.

Indiferent de metoda de filtrare pe care o utilizați, va trebui să instalați pachetele Xpdf
disponibil de la http://www.foolabs.com/xpdf/.

Sunt folosind ferestre din și nu se poate obține Filtre or il prog intrare metodă la muncă!

Atât metoda de introducere „-S prog”, cât și filtrele folosesc apelul de sistem „popen()” pentru a rula
program extern. Dacă programul dumneavoastră extern este, de exemplu, un script perl, trebuie să faceți acest lucru
spune-i lui Swish-e să ruleze perl, în loc de script. Swish-e va converti barele oblice în
bare oblice inverse când rulați sub Windows.

De exemplu, ar trebui să specificați calea către perl ca (presupunând că aici se află perl
pe sistemul dvs.):

IndexDir e:/perl/bin/perl.exe

Sau rulați un filtru ca:

FileFilter .foo e:/perl/bin/perl.exe „myscript.pl „%p””

Este adesea mai ușor să instalezi Linux.

Cum do I index non-engleză cuvinte?

Swish-e indexează numai caractere pe 8 biți. Acesta este setul de caractere ISO 8859-1 Latin-1 și
include multe litere (și simboluri) non-engleze. Atâta timp cât sunt enumerate în
„WordCharacters” vor fi indexate.

De fapt, probabil că puteți indexa orice set de caractere de 8 biți, atâta timp cât nu amestecați
seturi de caractere în același index și nu utilizați libxml2 pentru parsare (vezi mai jos).

Directiva „TranslateCharacters” (SWISH-CONFIG) poate traduce caractere în timpul indexării
și căutând. Puteți specifica maparea unui caracter la alt caracter cu ajutorul
Directiva „TranslateCharacters”.

„TranslateCharacters :ascii7:” este un set predefinit de caractere care se va traduce
caractere de opt biți până la caractere ascii7. Utilizarea regulii „:ascii7:” va, de exemplu,
traduce „Ääç” cu „aac”. Aceasta înseamnă: căutarea „Çelik”, „çelik” sau „celik” va fi totul
se potrivesc cu același cuvânt.

Notă: Când utilizați libxml2 pentru parsare, documentele analizate sunt convertite intern (în
libxml2) în UTF-8. Acesta este convertit la ISO 8859-1 Latin-1 la indexare. În cazurile în care
un șir nu poate fi convertit din UTF-8 în ISO 8859-1 (deoarece nu conține 8859-1
caractere), șirul va fi trimis către Swish-e în codificare UTF-8. Acest lucru va avea ca rezultat
unele cuvinte indexate incorect. Se va afișa „ParserWarningLevel” la 1 sau mai mult
avertismente atunci când conversia UTF-8 în 8859-1 eșuează.

Putea I adăugați / eliminați fișiere din an index?

Încercați să creați swish-e cu opțiunea „--enable-incremental”.

Restul acestei întrebări frecvente se aplică formatului swish-e implicit.

În prezent, Swish-e nu are nicio modalitate de a adăuga sau elimina articole din indexul său. Dar, indicii Swish-e
atât de repede încât este adesea posibilă reindexarea întregului set de documente atunci când este nevoie de un fișier
pentru a fi adăugate, modificate sau eliminate. Dacă accesați un site la distanță, luați în considerare
stocarea în cache a documentelor comprimate local.

Adăugările incrementale pot fi gestionate în câteva moduri, în funcție de situația dvs.
Probabil că cel mai ușor este să creezi un index principal în fiecare seară (sau în fiecare săptămână) și apoi
creați un index al fișierelor noi între principalele joburi de indexare și utilizați opțiunea „-f”.
pentru a transmite ambii indexuri către Swish-e în timpul căutării.

Puteți îmbina indecșii într-un singur index (în loc să utilizați -f), dar nu este clar acest lucru
acest lucru are vreun avantaj față de căutarea în mai mulți indici.

Cum se creează indexul incremental?

O metodă este utilizarea comutatorului „-N” pentru a transmite o cale de fișier către Swish-e la indexare. Aceasta
va indexa numai fișierele care au data ultimei modificări „mai nouă” decât fișierul furnizat
cu comutatorul „-N”.

Această opțiune are dezavantajul că Swish-e trebuie să proceseze fiecare fișier din fiecare director
ca și cum ar urma să fie indexate (testul pentru „-N” se face ultimul chiar înainte de indexare
din conținutul fișierului începe și după ce toate celelalte teste ale fișierului au fost finalizate) --
toate acestea doar pentru a găsi câteva fișiere noi.

De asemenea, dacă utilizați fișierul index Swish-e ca fișier trecut la „-N”, pot exista fișiere care
au fost adăugate după începerea indexării, dar înainte ca fișierul index să fie scris. Acest lucru ar putea
rezultă că un fișier nu este adăugat la index.

O altă opțiune este de a menține un arbore de directoare paralel care conține legături simbolice care indică
fisierele principale. Când un fișier nou este adăugat (sau modificat) în arborele directorului principal, dvs
creați o legătură simbolică către fișierul real în arborele directorului paralel. Apoi doar indexați
directorul de link-uri simbolice pentru a genera indexul incremental.

Această opțiune are dezavantajul că trebuie să aveți un program central care creează
fișiere noi care pot crea, de asemenea, legăturile simbolice. Dar, indexarea este destul de rapidă de la Swish-e
trebuie doar să se uite la fișierele care trebuie indexate. Când rulați indexarea completă
pur și simplu deconectați (ștergeți) toate legăturile simbolice.

Ambele metode au probleme în care fișierele ar putea ajunge în ambii indecși sau ar putea fi fișiere
lăsat în afara unui index. Utilizarea blocărilor de fișiere în timpul indexării și a căutărilor hash în timpul căutărilor
poate ajuta la prevenirea acestor probleme.

I alerga afară of memorie încercat la index my fișiere.

Este adevărat că indexarea poate ocupa multă memorie! Swish-e este extrem de rapid la
indexare, dar asta vine cu prețul memoriei.

Cel mai bun răspuns este să instalezi mai multă memorie.

O altă opțiune este folosirea comutatorului „-e”. Acest lucru va necesita mai puțină memorie, dar indexarea va necesita
durează mai mult deoarece nu toate datele vor fi stocate în memorie în timpul indexării. Cu cât mai puțină memorie
și cât timp mai mult depinde de documentele pe care le indexați și de hardware-ul respectiv
folosesti.

Iată un exemplu de indexare a tuturor fișierelor .html din /usr/doc pe Linux. Acest prim exemplu este
fără „-e” și a folosit aproximativ 84M de memorie:

270279 de cuvinte unice indexate.
23841 fișiere indexate. 177640166 octeți în total.
Timp scurs: 00:04:45 Timp CPU: 00:03:19

Asta e cu „-e” și a folosit aproximativ 26M sau memorie:

270279 de cuvinte unice indexate.
23841 fișiere indexate. 177640166 octeți în total.
Timp scurs: 00:06:43 Timp CPU: 00:04:12

De asemenea, puteți construi un număr de indici mai mici și apoi puteți îmbina împreună cu „-M”. Folosind
„-e” în timpul îmbinării va economisi memorie.

În cele din urmă, dacă construiți un număr de indici mai mici, puteți specifica mai mulți indici
când căutați folosind comutatorul „-f”. Sortarea seturilor mari de rezultate după o proprietate va fi
mai lent atunci când specificați mai multe fișiere index în timpul căutării.

"de asemenea multe deschide fisiere" cand indexare cu -e opțiune

Unele platforme raportează „prea multe fișiere deschise” când folosesc opțiunea -e economie. -e
caracteristica folosește multe fișiere temporare (ceva de genul 377) plus fișierele index și acest lucru poate
depășește limitele sistemului tău.

În funcție de platforma dvs., poate fi necesar să setați „ulimit” sau „unlimit”.

De exemplu, sub Linux bash shell:

$ ulimit -n 1024

Sau sub un vechi Sparc

% nelimitat de fișiere deschise

My sistem admin spune Swish-e utilizări de asemenea mult of il CPU!

E un lucru bun! Procesorul acela scump ar trebui să fie ocupat.

Indexarea necesită multă muncă -- pentru a face indexarea rapidă, o mare parte din munca este efectuată în memorie
ceea ce reduce timpul de așteptare de la Swish-e la I/O. Dar, sunt două lucruri
pot sa incerc:

Opțiunea „-e” va rula Swish-e în modul economic, care utilizează discul pentru a stoca date în timp ce
indexarea. Acest lucru face ca Swish-e să ruleze oarecum mai lent, dar utilizează și mai puțină memorie. De cand este
scrierea pe disc mai des va petrece mai mult timp așteptând I/O și mai puțin timp în interior
CPU. Pot fi.

Celălalt lucru este să reduceți pur și simplu prioritatea jobului folosind frumos(1) comanda:

/bin/nice -15 swish-e -c search.conf

Dacă vă îngrijorează timpul de căutare, asigurați-vă că utilizați comutatoarele -b și -m doar la
returnează o pagină la un moment dat. Dacă știți că seturile dvs. de rezultate vor fi mari și că dvs
doresc să returneze rezultate câte o pagină și de multe ori de multe ori mai multe pagini din aceeași pagină
interogarea va fi solicitată, ați putea fi inteligent să solicitați toate documentele pe primul
cerere și apoi memorați rezultatele într-un fișier temporar. Modulul perl File::Cache
face acest lucru foarte simplu de realizat.

Păianjen

Cum poate să I index documente on a web Server?

Dacă este posibil, utilizați metoda sistemului de fișiere „-S fs” de indexare pentru a indexa documentele de pe web
zona sistemului de fișiere. Acest lucru evită supraîncărcarea unui server web și este mult
Mai repede. ("-S fs" este metoda implicită dacă "-S" nu este specificat).

Dacă acest lucru este imposibil (serverul web nu este local sau documentele sunt dinamice
generat), Swish-e oferă două metode de spidering. În primul rând, include metoda http
de indexare „-S http”. Un număr de directive speciale de configurare sunt disponibile
controlează spidering (vezi „Directive pentru numai metoda de acces HTTP” în SWISH-CONFIG). A
Scriptul de ajutor perl (swishspider) este inclus în src director pentru a ajuta la spidering
servere web. Există exemple de configurații pentru spidering în conf director.

Începând cu Swish-e 2.2, există o sursă de documente „prog” cu scop general în care un program poate
să îi alimenteze documente pentru indexare. O serie de exemple de programe pot fi găsite în
directorul „prog-bin”, inclusiv un program pentru serverele web spider. Păianjenul furnizat.pl
programul este complet și este ușor de personalizat.

Avantajul caracteristicii sursei documentului „prog” față de metoda „http” este că
programul este executat o singură dată, în cazul în care programul swishspider.pl folosit în „http”
metoda este executată o dată pentru fiecare document citit de pe serverul web. Bifurcarea de
Swish-e și compilarea scriptului perl pot fi destul de costisitoare, din punct de vedere al timpului.

Celălalt avantaj al programului „spider.pl” este că este simplu și eficient de adăugat
filtrarea (cum ar fi pentru documentele PDF sau MS Word) direct în configurația spider.pl și
include caracteristici precum verificări MD5 pentru a preveni indexarea duplicat, opțiuni de evitat
spidering unele fișiere, sau index, dar evita spidering. Și din moment ce este un program perl, există
fără limită la funcțiile pe care le puteți adăuga.

De ce face spilcuit raportează "./swishspider: nu găsite"?

Face fișierul swishspider există acolo unde apare mesajul de eroare? Dacă nu, fie setați
opțiunea de configurare SpiderDirectory pentru a indica directorul în care swishspider
programul este găsit sau plasați swishspider programul în directorul curent când rulează
swish-e.

Dacă rulați Windows, asigurați-vă că „perl” este în cale. Încearcă să tastezi perl de la un
prompt de comandă.

Dacă nu rulați Windows, asigurați-vă că linia shebang (prima linie a
programul swishspider care începe cu #!) indică locația corectă a perl.
De obicei, asta va fi /usr/bin/perl or /usr/local/bin/perl. De asemenea, asigurați-vă că dvs
au permisiuni de execuție și citire pe swishspider.

swishspider scriptul perl este folosit doar cu metoda -S http de indexare.

Sunt folosind il păianjen.pl program la păianjen my web site-ul, dar unele mare fișiere sunt nu
indexate.

Programul „spider.pl” are o limită implicită de dimensiunea fișierului de 5MB. Acest lucru poate fi schimbat cu
setarea parametrului „max_size”. Consultați „perldoc spider.pl” pentru mai multe informații.

I încă nu face crede toate my web pagini sunt fiind indexate.

păianjen.pl programul are un număr de comutatoare de depanare și poate fi destul de pronunțat
spunându-ți ce se întâmplă și de ce. Consultați „perldoc spider.pl” pentru instrucțiuni.

foșnet is nu păianjen Javascript link-uri!

Swish nu poate urma linkurile generate de Javascript, deoarece acestea sunt generate de browser
și nu fac parte din document.

Cum do I păianjen alte site-uri web și combina it cu my propriu (Sistemul de fișiere) index?

Puteți fie îmbina „-M” doi indici într-un singur index, fie folosiți „-f” pentru a specifica mai mulți
decât un index în timpul căutării.

Vei avea rezultate mai bune cu metoda „-f”.

Căutare

Cum do I limita Cautari la doar piese of il index?

Dacă puteți identifica „părți” ale indexului dvs. după numele căii, aveți două opțiuni.

Prima opțiune este prin indexarea căii documentului. Adăugați asta la configurația dvs.:

MetaNames swishdocpath

Acum puteți căuta cuvinte sau expresii în numele căii:

swish-e -w 'foo AND swishdocpath=(vânzări)'

Deci, vor găsi doar documente cu cuvântul „foo” și unde conține calea fișierului
"vânzări". Totuși, s-ar putea să nu funcționeze atât de bine pe cât îți place, așa cum o vor face ambele căi
joc:

/web/sales/products/index.html
/web/accounting/private/sales_we_messed_up.html

Acest lucru poate fi rezolvat prin căutarea cu o expresie (presupunând că „/” nu este un WordCharacter):

swish-e -w 'foo AND swishdocpath=("/web/sales/")'
swish-e -w 'foo AND swishdocpath=("vânzări web")' (același lucru)

A doua opțiune este puțin mai puternică. Cu directiva „ExtractPath” puteți utiliza a
expresie regulată pentru a extrage un subset al căii și a-l salva ca meta separată
Nume:

Departamentul MetaNames
ExtractPath departament regex !^/web/([^/]+).+$!$1/

Care spune că potriviți o cale care începe cu „/web/” și extrageți totul după aceea
la, dar fără a include următorul „/” și salvați-l în variabila $1, apoi potriviți totul
de la „/” încolo. Apoi înlocuiți întregul șir de potriviri cu $1. Și asta devine
indexat ca meta nume „departament”.

Acum poți căuta ca:

swish-e -w 'foo AND departament=vânzări'

și asigurați-vă că veți potrivi doar documentele din calea /www/sales/*. Rețineți că
puteți mapa zone complet diferite ale sistemului dvs. de fișiere cu același metanume:

# semnalați paginile specifice de marketing
ExtractPath departament regex !^/web/(marketing⎪sales)/.+$!marketing/
ExtractPath departament regex !^/internal/marketing/.+$!marketing/

# semnalați paginile departamentelor tehnice
ExtractPath departament regex !^/web/(tech⎪bugs)/.+$!tech/

În fine, dacă ai ceva mai complicat, folosește „-S prog” și scrie un program perl sau
utilizați un filtru pentru a seta o metaetichetă atunci când procesați fiecare fișier.

Cum is trafic calculat?

Valoarea proprietății „swishrank” este calculată în funcție de schema de clasare (sau algoritm)
tu ai ales. În această discuție, oricând cuvântul fantezie este folosit, ar trebui să vă consultați
codul real pentru mai multe detalii. La urma urmei, este open source.

Lucruri pe care le puteți face pentru a afecta clasamentul:

MetaNamesRank
Puteți configura indexul pentru a modifica anumite valori metaname mai mult sau mai puțin decât altele.
Consultați opțiunea de configurare „MetaNamesRank” în SWISH-CONFIG.

IgnoraTotalWordCountWhenRanking
Setați la 1 (implicit) sau la 0 în fișierul dvs. de configurare. Vezi SWISH-CONFIG. NOTĂ: Trebuie să setați
aceasta la 0 pentru a utiliza Schema de clasare IDF.

structura
Poziția fiecărui termen în fiecare document HTML primește o valoare de structură bazată pe
contextul în care apare cuvântul. Valoarea structurii este folosită pentru a umfla artificial
frecvența fiecărui termen din acel document special. Aceste valori structurale sunt
definit în config.h:

#define RANK_TITLE 7
#define RANK_HEADER 5
#define RANK_META 3
#define RANK_COMMENTS 1
#define RANK_EMPHASIZED 0

De exemplu, dacă cuvântul „foo” apare în titlul unui document, Schema va apărea
tratați acel document ca și cum „foo” a apărut de 7 ori în plus.

Toate schemele au următoarele caracteristici:

ȘI căutări
Valoarea clasamentului este mediată pentru toți termenii AND. Termeni dintr-un set de paranteze ()
sunt mediate ca un singur termen (aceasta este o slăbiciune recunoscută și se află pe TODO
listă).

SAU căutări
Valoarea rangului este însumată și apoi dublată pentru fiecare pereche de termeni OR. Aceasta are ca rezultat
ranguri mai mari pentru documentele care au mai mulți termeni OR.

rang scalat
După ce se calculează scorul brut al unui document, se calculează un scor final
folosind o funcție de lux „log()”. Toate documentele sunt apoi scalate în raport cu un scor de bază
de 1000. Prin urmare, documentul cel mai bine clasat va avea întotdeauna o valoare „swishrank” de
1000.

Iată o scurtă prezentare generală a modului în care funcționează diferitele scheme. Numărul dintre paranteze
după nume este valoarea care trebuie invocată cu „swish-e -R” sau „RankScheme()”.

Implicit (0)
Schema de clasare implicită ia în considerare de câte ori un termen apare într-un document
(frecvență), MetaNamesRank și valoarea structurii. Rangul ar putea fi rezumat
ca:

DocRank = Suma (structură + metabias)

Luați în considerare această ieșire cu variabila DEBUG_RANK setată la momentul compilării:

Schema de clasare: 0
Intrarea cuvântului 0 la poziția 6 are structura 7
Intrarea cuvântului 1 la poziția 64 are structura 41
Intrarea cuvântului 2 la poziția 71 are structura 9
Intrarea cuvântului 3 la poziția 132 are structura 9
Intrarea cuvântului 4 la poziția 154 are structura 9
Intrarea cuvântului 5 la poziția 423 are structura 73
Intrarea cuvântului 6 la poziția 541 are structura 73
Intrarea cuvântului 7 la poziția 662 are structura 73
Număr fișier: 1104. Rang Raw: 21. Frecvență: 8 rang scalat: 30445
Număr de structură:
struct 0x7 = count of 1 ( HEAD TITLE FILE ) x rank map of 8 = 8

struct 0x9 = count of 3 ( BODY FILE ) x rank map of 1 = 3

struct 0x29 = count of 1 ( HEATING BODY FILE ) x rank map of 6 = 6

struct 0x49 = număr de 3 ( EM BODY FILE ) x hartă de rang de 1 = 3

Fiecare instanță de cuvânt începe cu un scor de bază de 1. Apoi, pentru fiecare instanță a ta
cuvânt, se ia o sumă curentă a valorii structurale a acelei poziții de cuvânt plus orice
părtinire pe care ați configurat-o. În exemplul de mai sus, rangul brut este „1 + 8 + 3 + 6 + 3 =
21“.

Luați în considerare această linie:

struct 0x7 = count of 1 ( HEAD TITLE FILE ) x rank map of 8 = 8

Asta înseamnă că a existat o instanță a cuvântului nostru în titlul fișierului. Este contextul
a fost în set de etichete, în interiorul . <titlul> este cel mai specific
structura, deci obține scorul RANK_TITLE: 7. Rangul de bază de 1 plus structura
scorul de 7 este egal cu 8. Dacă ar fi fost două cazuri ale acestui cuvânt în titlu, atunci
scorul ar fi fost „8 + 8 = 16”.

IDF (1)
IDF este prescurtarea pentru Inverse Document Frequency. Acesta este limbajul de clasament de lux de luat
luați în considerare frecvența totală a unui termen în întregul indice, în plus față de
frecvența termenului într-un singur document. Clasamentul IDF folosește și densitatea relativă a a
cuvânt într-un document pentru a aprecia relevanța acestuia. Cuvintele care apar mai des într-un document fac
acel document este mai ridicat, iar documentele mai lungi nu sunt ponderate mai sus decât documentele mai scurte.

Schema IDF ar putea fi rezumată astfel:

DocRank = Suma ( densitate * idf * ( structura + metabias ) )

Luați în considerare această ieșire de la DEBUG_RANK:

Schema de clasare: 1
Număr fișier: 1104 Scor cuvinte: 1 Frecvență: 8 Total fișiere: 1451
Frecvența totală a cuvintelor: 108 IDF: 2564
Total cuvinte: 1145877 Cuvinte indexate în acest document: 562
Cuvinte medii: 789 Densitate: 1120 Greutate cuvânt: 28716
Intrarea cuvântului 0 la poziția 6 are structura 7
Intrarea cuvântului 1 la poziția 64 are structura 41
Intrarea cuvântului 2 la poziția 71 are structura 9
Intrarea cuvântului 3 la poziția 132 are structura 9
Intrarea cuvântului 4 la poziția 154 are structura 9
Intrarea cuvântului 5 la poziția 423 are structura 73
Intrarea cuvântului 6 la poziția 541 are structura 73
Intrarea cuvântului 7 la poziția 662 are structura 73
Rang după ponderarea IDF: 574321
rang scalat: 132609
Număr de structură:
struct 0x7 = count of 1 ( HEAD TITLE FILE ) x rank map of 8 = 8

struct 0x9 = count of 3 ( BODY FILE ) x rank map of 1 = 3

struct 0x29 = count of 1 ( HEATING BODY FILE ) x rank map of 6 = 6

struct 0x49 = număr de 3 ( EM BODY FILE ) x hartă de rang de 1 = 3

Este similar cu schema implicită, dar observați cum numărul total de fișiere din
index și frecvența totală a cuvintelor (spre deosebire de frecvența documentului) sunt ambele
parte a ecuației.

Clasamentul este un subiect complicat. SWISH-E permite dezvoltarea mai multor scheme de clasare
și experimentat, folosind opțiunea -R (din comanda swish-e) și RankScheme
(vezi documentația API). Experimentați și împărtășiți descoperirile dvs. prin intermediul listei de discuții.

Cum poate să I limita Cautari la il titlu, corp, or Cum? 'Sau' Ce?

Folosiți comutatorul „-t”.

I nu se poate limita Cautari la titlu/corp/comentar.

Sau, I nu se poate căutare cu meta nume, toate il nume sunt indexate as "simplu".

Verificați în fișierul config.h dacă #define INDEXTAGS este setat la 1. Dacă este, schimbați-l la 0,
recompilați și indexați din nou. Când INDEXTAGS este 1, TOATE etichetele sunt indexate ca text simplu,
adică tu indexezi „titlu”, „h1” și așa mai departe, ȘI își pierd sensul de indexare. Dacă
INDEXTAGS este setat la 0, veți indexa în continuare metaetichetele și comentariile, dacă nu aveți
indicat altfel în fișierul de configurare utilizator cu directiva IndexComments.

De asemenea, verificați setarea „UndefinedMetaTags” în fișierul dvs. de configurare.

Am încercat funcţionare il inclus CGI scenariu și I obține a "Intern server de Eroare"

Depanarea scripturilor CGI depășește scopul acestui document. Internal Server Error
Practic înseamnă „verificați jurnalul serverului web pentru un mesaj de eroare”, deoarece poate însemna un rău
shebang (#!), un modul perl lipsă, o eroare de transfer FTP sau pur și simplu o eroare în
program. Scriptul CGI swish.cgi în exemplu directorul conține ceva depanare
sugestii. Tastați „perldoc swish.cgi” pentru informații.

Există, de asemenea, multe, multe întrebări frecvente CGI disponibile pe Internet. O căutare rapidă pe web ar trebui
oferă ajutor. Ca ultimă soluție, puteți cere ajutor administratorului dvs. web...

Cand I încerca la Vizualizează il swish.cgi pagină I vedea il conținut of il Perl programul.

Serverul dvs. web nu este configurat să ruleze programul ca script CGI. Această problemă este
descris în „perldoc swish.cgi”.

Cum do I face Swish-e a evidentia cuvinte in căutare rezultate?

Răspuns scurt:

Utilizați scripturile swish.cgi sau search.cgi furnizate aflate în exemplu director.

Raspuns lung:

Swish-e nu poate deoarece nu are acces la documentele sursă la întoarcere
rezultate, desigur. Dar un program front-end al creației tale poate evidenția termeni. Ta
programul poate deschide documentele sursă și apoi poate folosi expresii regulate pentru a le înlocui
termeni de căutare cu cuvinte evidențiate sau îngroșate.

Dar, asta va eșua cu toate documentele sursă, cu excepția celor mai simple. Pentru documentele HTML,
de exemplu, trebuie să analizați documentul în cuvinte și etichete (și comentarii). Un cuvânt tu
Doriți să evidențiați poate cuprinde mai multe etichete HTML sau poate fi un cuvânt într-o adresă URL și doriți
evidențiați întregul text al linkului.

Modulele Perl precum HTML::Parser și XML::Parser fac posibilă extragerea cuvintelor. Următorul,
trebuie să luați în considerare că Swish-e utilizează setări precum WordCharacters, BeginCharacters,
EndCharacters, IgnoreFirstChar și IgnoreLast, char pentru a defini un „cuvânt”. Acela esti tu
nu pot considera că un șir de caractere cu spațiu alb pe fiecare parte este un cuvânt.

Apoi lucruri precum TranslateCharacters și HTML Entities pot transforma un cuvânt sursă în
altceva, în ceea ce privește Swish-e. În cele din urmă, căutările pot fi limitate de
metanames, așa că poate fi necesar să vă limitați evidențierea la doar părți ale sursei
document. Aruncați căutări de expresii și cuvinte oprite în ecuație și puteți vedea că este
nu este o problemă banală de rezolvat.

Toată speranța nu este pierdută, se gândi, deoarece Swish-e oferă ceva ajutor. Folosind opțiunea „-H”.
va returna în anteturi setările curente de index (sau indexuri) pentru WordCharacters
(și altele) necesare pentru a analiza documentele sursă pe măsură ce le analizează în timpul indexării,
și va returna un antet „Parsed Words:” care va arăta cum a analizat interogarea
intern. Dacă utilizați indexarea neclară (răzbunare a cuvântului, soundex sau metafon), atunci dvs
va trebui, de asemenea, să reducă fiecare cuvânt din document înainte de a compara cu „Parsed
Cuvinte:" returnat de Swish-e.

Codul stemming Swish-e este disponibil fie prin utilizarea modulului Swish-e Perl
(SWISH::API) sau biblioteca C (inclusă cu distribuția swish-e) sau folosind
SWISH::Modul Stemmer disponibil pe CPAN. Tot pe CPAN este și modulul
Text::DoubleMetaphone. Utilizarea SWISH::API oferă probabil cel mai bun suport de stemming.

Do Filtre efect il performanță în timpul căutare?

Nu. Filtrele (FileFilter sau prin metoda „prog”) sunt folosite doar pentru construirea indexului de căutare
Bază de date. În timpul solicitărilor de căutare nu vor exista apeluri de filtrare.

I avea citit il FAQ dar I încă avea întrebări despre folosind Swish-e.

Lista de discuții Swish-e este locul potrivit. http://swish-e.org/. Vă rugăm să nu trimiteți e-mail
dezvoltatorii direct. Lista este cel mai bun loc pentru a pune întrebări.

Inainte de a posta va rog cititi ÎNTREBĂRI AND DEPANARE aflat în pagina INSTALARE.
De asemenea, ar trebui să căutați în arhiva listei de discuții Swish-e, care poate fi găsită pe
site-ul web swish-e.

Pe scurt, asigurați-vă că includeți următoarele atunci când cereți ajutor.

* Versiunea swish-e (./swish-e -V)
* Ceea ce indexați (și poate un eșantion) și numărul de fișiere
* Fișierul dvs. de configurare Swish-e
* Orice mesaj de eroare pe care Swish-e le raportează

Document Informație


$Id: SWISH-FAQ.pod 2147 2008-07-21 02:48:55Z karpet $

.

Utilizați SWISH-FAQ online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    curațare in profunzime
    curațare in profunzime
    Un script Kotlin care distruge toate constructiile
    cache-urile din proiecte Gradle/Android.
    Util atunci când Gradle sau IDE-ul vă permit
    jos. Scriptul a fost testat
    macOS, dar...
    Descărcați deep-clean
  • 2
    Plug-in-ul Eclipse Checkstyle
    Plug-in-ul Eclipse Checkstyle
    Pluginul Eclipse Checkstyle
    integrează codul Java Checkstyle
    auditor în IDE-ul Eclipse. The
    plug-in-ul oferă feedback în timp real pentru
    utilizatorul despre viol...
    Descărcați pluginul Eclipse Checkstyle
  • 3
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player este un player media gratuit
    software, parte bazat pe WMP și VLC. The
    player este într-un stil minimalist, cu
    mai mult de zece culori tematice, și poate, de asemenea
    b ...
    Descărcați AstrOrzPlayer
  • 4
    movistartv
    movistartv
    Kodi Movistar+ TV este un ADDON pentru XBMC/
    Kodi care permite să dispună de un
    decodificator de servicii IPTV de
    Movistar integrat în unul de los
    centrele media ma...
    Descărcați movistartv
  • 5
    Cod :: Blocuri
    Cod :: Blocuri
    Code::Blocks este un program gratuit, open-source,
    cross-platform C, C++ și Fortran IDE
    construit pentru a satisface cele mai exigente nevoi
    a utilizatorilor săi. Este conceput să fie foarte
    extens ...
    Cod de descărcare::Blocuri
  • 6
    În mijlocul
    În mijlocul
    În mijlocul sau interfața avansată Minecraft
    iar Urmărirea Datelor/Structurii este un instrument pentru
    afișați o prezentare generală a unui Minecraft
    lume, fără a o crea efectiv. Aceasta
    poate sa ...
    Descărcați Amidst
  • Mai mult »

Comenzi Linux

Ad