GoGPT Best VPN GoSearch

Favicon di OnWorks

SWISH-FAQ - Online nel Cloud

Esegui SWISH-FAQ nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

Questo è il comando SWISH-FAQ che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

PROGRAMMA:

NOME


SWISH-FAQ - Le FAQ di Swish-e. Risposte alle domande più comuni

OVERVIEW


Elenco delle domande più frequenti e relative risposte. Si prega di leggere attentamente questo documento prima di porre domande.
domande sulla lista di discussione Swish-e.

Informazioni Domande

Che is Swish-e?

Swish-e è Simple Web Iindicizzazione System per Humani - Emigliorato. Con esso, puoi rapidamente e
indicizzare facilmente directory di file o siti web remoti e cercare negli indici generati
parole e frasi.

Così, is Swish-e a Ricerca motore?

Beh, sì. Probabilmente l'uso più comune di Swish-e è quello di fornire un motore di ricerca per il web
siti. La distribuzione Swish-e include script CGI che possono essere utilizzati per aggiungere un
Ricerca motore per il tuo sito web. Gli script CGI possono essere trovati in esempio directory di
il pacchetto di distribuzione. Vedi il README file per informazioni sugli script.

Ma Swish-e può anche essere utilizzato per indicizzare tutti i tipi di dati, come messaggi di posta elettronica, dati
memorizzati in un sistema di gestione di database relazionali, documenti XML o documenti come
Documenti Word e PDF, o qualsiasi combinazione di queste fonti contemporaneamente. Ricerche
può essere limitato ai campi o MetaNomi all'interno di un documento o limitato ad aree all'interno di un
Documento HTML (ad esempio corpo, titolo). Programmi diversi dalle applicazioni CGI possono utilizzare Swish-e,
come pure.

Qualora I upgrade if sono già running a precedente versione of Swish-e?

Nella versione sono state apportate numerose correzioni di bug, aggiunte di funzionalità e correzioni logiche
2.2. Inoltre, la velocità di indicizzazione è stata drasticamente migliorata (segnalazioni di tempi di indicizzazione
passando da quattro ore a 5 minuti) e parti principali dell'indicizzazione e dei parser di ricerca
sono stati riscritti. Ci sono migliori opzioni di debug, formati di output migliorati, altro
metadati del documento (ad esempio data dell'ultima modifica, riepilogo del documento), opzioni per l'indicizzazione da
fonti di dati esterne e una scansione più veloce, solo per citare alcune modifiche. (Vedi le MODIFICHE
file per ulteriori informazioni.

Poiché è stato fatto così tanto sforzo nella versione 2.2, il supporto per le versioni precedenti sarà
probabilmente sarà limitato.

sia ci binario distribuzioni disponibile da Swish-e on piattaforma pippo?

Foo? Beh, sì, ci sono alcune distribuzioni binarie disponibili. Consulta il sito web di Swish-e.
sito per un elenco a http://swish-e.org/.

In generale, se possibile, si consiglia di compilare Swish-e partendo dal codice sorgente.

Do I bisogno a reindicizzare my site ogni tempo I upgrade a a nuovi Swish-e versione?

A volte potrebbe non essere strettamente necessario, ma poiché non sai realmente se qualcosa
nell'indice è cambiato, è buona norma reindicizzarlo.

Cosa c'è , il vantaggio of utilizzando , il libxml2 biblioteca da l'analisi HTML?

Swish-e può essere collegato a libxml2, una libreria per lavorare con documenti HTML e XML.
Swish-e può utilizzare libxml2 per analizzare documenti HTML e XML.

Il parser libxml2 è un parser migliore del parser HTML integrato di Swish-e. Offre di più
funzionalità e fa un lavoro molto migliore nell'estrarre il testo da una pagina web. In
Inoltre, è possibile utilizzare l'impostazione di configurazione "ParserWarningLevel" per trovare errori strutturali
errori nei documenti che potrebbero (e con l'analizzatore HTML di Swish-e) causare documenti
essere indicizzati in modo errato.

Libxml2 non è obbligatorio, ma è fortemente consigliato per l'analisi dei documenti HTML. È
consigliato anche per l'analisi XML, in quanto offre molte più funzionalità rispetto all'Expat interno
parser xml.c.

Il parser HTML interno avrà un supporto limitato e presenta una serie di bug. Per
ad esempio, le entità HTML potrebbero non essere sempre convertite correttamente e le proprietà non hanno
entità convertite. Il parser interno tende a confondersi quando viene analizzato codice HTML non valido
dove il parser libxml2 non si confonde così spesso. La struttura viene rilevata meglio
con il parser libxml2.

Se si utilizza il modulo Perl (l'interfaccia C alla libreria Swish-e) si potrebbe voler
creare due versioni di Swish-e, una con la libreria libxml2 collegata nel binario e una
senza, e compilare il modulo Perl sulla libreria senza il codice libxml2. Questo è
per risparmiare spazio nella biblioteca. Si spera che un giorno la biblioteca sarà presto divisa in
indicizzazione e ricerca del codice (volontari benvenuti).

Le normative Swish-e includere a CGI interfaccia?

Sì. Più o meno.

Sono inclusi due script CGI di esempio, swish.cgi e search.cgi. Entrambi sono installati in
$prefix/lib/swish-e.

Entrambi richiedono un po' di lavoro per essere impostati e utilizzati. Swish.cgi è probabilmente quello che la maggior parte delle persone userà
desidera utilizzare in quanto contiene più funzionalità. Search.cgi è per coloro che vogliono iniziare con
un piccolo script e personalizzarlo in base alle proprie esigenze.

Un esempio di utilizzo di swish.cgi è fornito nella pagina man INSTALL, ed è swish.cgi
documentazione. Come spesso accade, sarà più facile da usare se prima leggi la
documentazione.

Si prega di prestare attenzione agli script CGI trovati su Internet per l'uso con Swish-e. Alcuni sono
non sicuro.

Gli script CGI di esempio inclusi sono stati progettati tenendo presente la sicurezza. In ogni caso, sei
ti consiglio di farlo revisionare dal tuo esperto Perl locale (e da tutti gli altri script CGI che usi)
prima di metterlo in produzione. Questa è semplicemente una buona regola da seguire.

Come sicuro is Swish-e?

Non siamo a conoscenza di problemi di sicurezza nell'utilizzo di Swish-e. È stata prestata la massima attenzione
riguardo ai comuni problemi di sicurezza, come i buffer overrun durante la programmazione di Swish-e.

Il problema di sicurezza più probabile con Swish-e si verifica quando viene eseguito tramite un CGI scritto male
interfaccia. Questo non è limitato agli script CGI scritti in Perl, poiché è altrettanto facile
scrivere uno script CGI non sicuro in C, Java, PHP o Python. Una buona fonte di informazioni è
incluso nella distribuzione Perl. Digitare "perldoc perlsec" al prompt locale per ulteriori informazioni
informazioni. Un altro documento di lettura obbligatoria si trova all'indirizzo
"http://www.w3.org/Security/faq/wwwsf4.html".

Nota che ce ne sono molti gratuita eppure sono disponibili script CGI insicuri e mal scritti --
alcuni sono progettati per essere utilizzati con Swish-e. Si prega di esaminare attentamente qualsiasi script CGI utilizzato.
Gratis non è un buon prezzo quando il tuo server viene hackerato...

Qualora I eseguire il Swish-e as , il superuser (radice)?

No. Mai.

Che file effettua Swish-e Scrivi?

Swish scrive il file indice, ovviamente. Questo è specificato con "IndexFile".
direttiva di configurazione o tramite l'opzione della riga di comando "-f".

Il file indice è in realtà una raccolta di file, ma tutti iniziano con il nome del file
specificato con la direttiva "IndexFile" o con l'opzione della riga di comando "-f".

Ad esempio, il file che termina in .puntello contiene le proprietà del documento.

Quando si creano i file di indice, Swish-e aggiunge l'estensione .temp ai nomi dei file di indice.
Una volta completata l'indicizzazione, Swish-e rinomina il file .temp file nei file di indice specificati da
"IndexFile" o "-f". Questo viene fatto in modo che gli indici esistenti rimangano intatti finché non vengono
completa l'indicizzazione.

Swish-e scrive anche file temporanei in alcuni casi durante l'indicizzazione (ad esempio "-s http", "-s
prog" con filtri), durante l'unione e quando si utilizza "-e"). I file temporanei vengono creati con
, il mkstemp(3) funzione (con autorizzazione 0600 su sistemi operativi di tipo Unix).

I file temporanei vengono creati nella directory specificata dalle variabili di ambiente
"TMPDIR" e "TMP" in quest'ordine. Se non sono impostati, swish utilizza l'impostazione
impostazione di configurazione TmpDir. In caso contrario, il file temporaneo si troverà nella
directory corrente.

Può I Index PDF e MS Word documenti?

Sì, puoi usare un file Filtra per convertire i documenti durante l'indicizzazione, oppure puoi usare un programma
che "alimenta" Swish-e con i documenti già convertiti. Vedi "Indicizzazione" di seguito.

Può I Index documenti on a sito web server?

Sì, Swish-e fornisce due modi per indicizzare (spider) i documenti su un server web. Vedi
"Ragno" qui sotto.

Swish-e può recuperare documenti da un file system o da un server web remoto. Può
eseguire anche un programma che gli restituisce i documenti. Questo programma può recuperare
documenti da un database, filtrare file di documenti compressi, convertire file PDF, estrarre
dati provenienti da archivi di posta elettronica o siti web remoti.

Può I realizzare parole chiave in my documenti?

Sì, Swish-e può associare parole con MetaNomi durante l'indicizzazione, e puoi limitare il tuo
cerca questi MetaNames durante la ricerca.

Nei file HTML puoi inserire parole chiave nei tag META HTML o nei blocchi XML.

I tag META possono avere due formati nei documenti sorgente:



E in formato XML (può essere utilizzato anche nei documenti HTML quando si utilizza libxml2):


Alcuni contenuti


Quindi, per informare Swish-e dell'esistenza del meta nome nei tuoi documenti, modifica il
riga nel file di configurazione:

MetaNames DC.subject meta1 meta2

Durante la ricerca ora puoi limitare alcuni o tutti i termini di ricerca a quel MetaName. Ad esempio,
per cercare documenti che contengono la parola mela e che contengono anche frutta o cucina
il meta tag DC.subject.

Che sono documento proprietà?

Una proprietà del documento è in genere costituita da dati che descrivono il documento. Ad esempio,
Le proprietà potrebbero includere il nome del percorso di un documento, la sua data dell'ultima modifica, il suo titolo o il suo
dimensione. Swish-e memorizza le proprietà di un documento nel file indice e possono essere segnalate
di nuovo nei risultati di ricerca.

Swish-e utilizza anche le proprietà per l'ordinamento. Puoi ordinare i risultati in base a una o più proprietà.
proprietà, in ordine crescente o decrescente.

Le proprietà possono essere definite anche all'interno dei documenti. I file HTML e XML possono specificare tag
(vedi domanda precedente) come proprietà. Il testuali di questi tag possono quindi essere restituiti
con i risultati della ricerca. Queste proprietà definite dall'utente possono essere utilizzate anche per ordinare la ricerca
risultati.

Ad esempio, se nei tuoi documenti ci fosse quanto segue



e "creatore" è definito come una proprietà (vedere "PropertyNames" in SWISH-CONFIG) Swish-e può
restituire "reparto contabilità" con il risultato per quel documento.

swish-e -w foo -p creatore

Oppure per ordinare:

swish-e -w foo -s creator

Cosa c'è , il differenza fra MetaNomi e NomiProprietà?

MetaNames consente ricerche per parole chiave nei tuoi documenti. In altre parole, puoi usare MetaNames per
limita le ricerche solo a parti dei tuoi documenti.

PropertyNames, d'altra parte, definisce il testo che può essere restituito con i risultati e può
essere utilizzato per l'ordinamento.

Entrambi usano arrivo tag trovato nei tuoi documenti (come mostrato nelle due domande precedenti) per definire
il testo che desideri utilizzare come proprietà o meta nome.

Puoi definire un tag come entrambi una proprietà e un meta nome. Ad esempio:



inseriti nei documenti e quindi utilizzando le impostazioni di configurazione di:

Creatore di PropertyNames
Creatore di MetaNames

ti permetterà di limitare le tue ricerche ai documenti creati dalla contabilità:

swish-e -w 'foo e creatore=(contabilità)'

Ciò troverà tutti i documenti con la parola "foo" che hanno anche un meta tag creatore che
contiene la parola "contabilità". Questo utilizza MetaNames.

E puoi anche dire:

swish-e -w foo -p creatore

che restituirà tutti i documenti con la parola "foo", ma i risultati includeranno anche
contenuto del meta tag "creator" insieme ai risultati. Questo utilizza le proprietà.

È possibile utilizzare contemporaneamente anche proprietà e meta nomi:

swish-e -w creatore=(contabilità o marketing) -p creatore -s creatore

Che cerca solo nel "creatore" arrivo Nome per entrambe le parole "contabilità" o
"marketing", stampa il contenuto dei contenuti del "creatore" proprietàe ordina
i risultati del "creatore" proprietà Nome.

(Vedi anche l'opzione del formato di output "-x" in SWISH-RUN.)

Può Swish-e Index multibyte personaggi?

No. Ci vorrà molto lavoro per cambiare questa cosa. Ma Swish-e funziona con caratteri a otto bit,
si possono usare così tanti set di caratteri. Nota che chiama l'ANSI-C ridurre() funzione
che dipende dalle impostazioni locali correnti. Vedi località(7) per maggiori informazioni.

Indicizzazione

Come do I passare Swish-e a stratagemma of file a indice?

Attualmente, non esiste una direttiva di configurazione per includere un file che contiene un elenco
di file da indicizzare. Tuttavia, esiste una direttiva per includere un altro file di configurazione.

IncludeConfigFile /percorso/verso/altra/configurazione

E in "/path/to/other/config" puoi dire:

IndexDir file1 file2 file3 file4 file5 ...
IndexDir file20 file21 file22

È anche possibile specificare più di un file di configurazione sulla riga di comando:

./swish-e -c config_one config_two config_three

Un'altra opzione è quella di creare una directory con collegamenti simbolici dei file da indicizzare e
indicizzare solo quella directory.

Come effettua Swish-e sapere quale parser a usare?

Swish può analizzare documenti HTML, XML e di testo. L'analizzatore viene impostato associando un file
estensione con un parser tramite la direttiva "IndexContents". È possibile impostare il parser predefinito
con la direttiva "DefaultContents". Se a un documento non viene assegnato un parser, verrà
per impostazione predefinita usa il parser HTML (HTML2 se compilato con libxml2).

È possibile utilizzare filtri o un programma esterno per convertire i documenti in HTML, XML o testo.

Può I reindicizzare e Ricerca at , il stesso tempo?

Sì. A partire dalla versione 2.2 Swish-e indicizza i file temporanei e quindi li rinomina
file al termine dell'indicizzazione. Sulla maggior parte dei sistemi, le rinominazioni sono atomiche. Ma, poiché Swish-e
genera anche più di un file durante l'indicizzazione ci sarà un periodo molto breve di
tempo tra la ridenominazione dei vari file quando l'indice non è sincronizzato.

Impostazioni in src/config.h controllare alcune opzioni relative ai file temporanei e al loro utilizzo
durante l'indicizzazione.

Può I Index frasi?

Le frasi vengono indicizzate automaticamente. Per cercare una frase è sufficiente inserire le virgolette doppie.
attorno alla frase.

Per esempio:

swish-e -w 'motore di ricerca gratuito e "veloce"'

Come può I prevenire Frasi da corrispondenza operanti in frasi?

Utilizzare la direttiva di configurazione BumpPositionCounterCharacters.

Swish-e non è indicizzazione a certo parola or frase.

Ci sono diversi parametri di configurazione che controllano ciò che Swish-e considera un
"word" e ha una funzione di debug per aiutare a individuare eventuali problemi di indicizzazione.

Direttive del file di configurazione (SWISH-CONFIG) "WordCharacters", "BeginCharacters",
"EndCharacters", "IgnoreFirstChar" e "IgnoreLastChar" sono le impostazioni principali che Swish-
e viene utilizzato per definire una "parola". Per i dettagli, vedere SWISH-CONFIG e SWISH-RUN.

Swish-e utilizza anche impostazioni predefinite in fase di compilazione per molte impostazioni. Queste si trovano in
src/config.h file.

L'uso degli argomenti della riga di comando "-k", "-v" e "-T" è utile durante il debug di questi
problemi. L'utilizzo di "-T INDEXED_WORDS" durante l'indicizzazione visualizzerà ogni parola così com'è
indicizzato. Dovresti specificare un file quando usi questa funzione poiché può generare molto
di uscita.

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

Potresti anche voler indicizzare un singolo file che contiene parole che sono o non sono indicizzabili
come previsto e utilizzare -T per visualizzare informazioni di debug sull'indice. Un utile
il comando potrebbe essere:

./swish-e -f indice.swish-e -T INDICE_COMPLETO

Una volta che vedi come Swish-e analizza e indicizza le tue parole, puoi regolare
impostazioni di configurazione menzionate sopra per controllare quali parole vengono indicizzate.

Un altro comando utile potrebbe essere:

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

Questo mostrerà le parole spaziate analizzate dal documento (PARSED_WORDS) e come queste
le parole vengono suddivise in parole separate per l'indicizzazione (INDEXED_WORDS).

Come do I mantenere Swish-e da indicizzazione numeri?

Swish-e indicizza le parole come definite dall'impostazione "WordCharacters", come descritto sopra. Quindi
per evitare di indicizzare i numeri, è sufficiente rimuovere le cifre dall'impostazione "WordCharacters".

Ci sono anche alcune impostazioni in src/config.h che controllano quali "parole" vengono indicizzate. Tu
puoi configurare swish in modo che non indicizzi mai parole composte solo da cifre, vocali o consonanti, oppure
che contengono più di un certo numero consecutivo di cifre, vocali o consonanti. In
in generale, non sarà necessario modificare queste impostazioni.

Inoltre, c'è una funzionalità sperimentale chiamata "IgnoreNumberChars" che ti consente di
definire un insieme di caratteri che descrivono un numero. Se una parola è composta da esclusivamente quelli
caratteri non verrà indicizzato.

Swish-e si blocca e ustioni on a certo file. Che può I fare?

Questo non dovrebbe accadere. Se dovesse succedere, pubblica i dettagli nella lista di discussione di Swish-e.
in modo che possa essere riprodotto dagli sviluppatori.

Nel frattempo, puoi usare una direttiva "FileRules" per escludere il nome di file specifico,
o il percorso, o il suo titolo. Se ci sono seri problemi nell'indicizzazione di alcuni tipi di
file, potrebbero non contenere testo valido (potrebbero essere file binari, ad esempio).
è possibile utilizzare NoContents per escludere quel tipo di file.

Swish-e emetterà un avviso se viene trovato un carattere nullo incorporato in un documento. Questo
avviso sarà un'indicazione che si sta tentando di indicizzare dati binari. Se è necessario
i file binari di indice provano a trovare un programma che estragga il testo (ad esempio stringhe(1),
catdoc(1), pdftotesto(1)).

Come a I prevenire indicizzazione of alcuni documenti?

Quando si utilizza il file system per indicizzare i file, è possibile utilizzare la direttiva "FileRules".
Oltre a "FileRules title", "FileRules" funziona solo con il file system ("-S fs")
metodo di indicizzazione, non con "-S prog" o "-S http".

Se stai eseguendo lo spidering di un sito su cui hai il controllo, usa un robots.txt file nel tuo documento
root. Questo è un modo standard per escludere i file dai motori di ricerca ed è completamente
supportato da Swish-e. Vedi http://www.robotstxt.org/

Se si esegue lo spidering di un sito Web con incluso ragno.pl programma quindi aggiungi tutti i test necessari a
il file di configurazione del ragno. Tipo nella directory "prog-bin" per
dettagli o vedere la documentazione del ragno sul sito web Swish-e. Cerca la sezione su
funzioni di callback.

Se utilizzi la libreria libxml2 per l'analisi HTML (cosa che probabilmente fai), puoi anche usare
l'esclusione Meta Robots nei tuoi documenti:



Vedere la direttiva obeyRobotsNoIndex.

Come do I prevenire indicizzazione Ricambi of a documento?

Per impedire a Swish-e di indicizzare un'intestazione, un piè di pagina o una barra di navigazione comuni, E sei
utilizzando libxml2 per l'analisi HTML, puoi usare un tag HTML falso attorno al testo che desideri
per ignorare e utilizzare la direttiva "IgnoreMetaTags". Ciò genererà un messaggio di errore se
"ParserWarningLevel" è impostato in quanto HTML non valido.

"IgnoreMetaTags" funziona con i documenti XML (e documenti HTML quando si utilizza libxml2 come
parser), ma non con i documenti analizzati dal parser di testo (TXT).

Se stai utilizzando il parser libxml2 (HTML2 e XML2), puoi usare quanto segue
commenti nei tuoi documenti per impedirne l'indicizzazione:




e/o possono essere utilizzati anche:




Come do I modificare , il sentiero or URL of , il indicizzati documenti.

Utilizzare la direttiva di configurazione "ReplaceRules" per riscrivere i nomi dei percorsi e gli URL. Se si
Utilizzando il metodo di input "-S prog" è possibile impostare il percorso su qualsiasi stringa.

Come può I Index dati da a Banca dati?

Utilizzare il metodo di indicizzazione della sorgente del documento "prog". Scrivere un programma per estrarre il
dati dal tuo database e formattali come XML, HTML o testo. Vedi gli esempi nella
directory "prog-bin" e la domanda successiva.

Come do I Index my PDF, Parola, e compressa documenti?

Swish-e può analizzare internamente solo file HTML, XML e TXT (testo) per impostazione predefinita, ma può creare
uso di filtri che convertirà altri tipi di file come documenti MS Word, PDF o
file compressi con gzip in uno dei tipi di file supportati da Swish-e.

Si prega di vedere SWISH-CONFIG e gli esempi nel filtri e filtro-bidone directory per maggiori informazioni
informazioni.

Per maggiori informazioni sulle opzioni di filtraggio con Swish-e, consulta la domanda successiva.

Come do I filtro documenti?

Il termine "filtro" in Swish-e significa la conversione di un documento di un tipo (uno che
swish-e non può indicizzare direttamente) in un tipo che Swish-e può indicizzare, vale a dire HTML, semplice
testo o XML. Per aumentare la confusione, ci sono diversi modi per farlo in
Swish-e. Ecco un po' di contesto.

La direttiva FileFilter è stata aggiunta per prima a swish. Questa funzionalità consente di specificare un
programma da eseguire per i documenti che corrispondono a una determinata estensione di file. Ad esempio, per filtrare
Per i file PDF (file che terminano in .pdf) è possibile specificare le impostazioni di configurazione di:

FileFilter .pdf pdftotext "'%p' -"

che dice di eseguire il programma "pdftotext" passandogli il percorso del file (%p) e un
trattino (che dice a pdftotext di inviare l'output su stdout). Quindi per ogni file .pdf Swish-e viene eseguito
questo programma e legge il documento filtrato dall'output del programma di filtro.

Questo ha il vantaggio di essere facile da configurare: una singola riga nel file di configurazione è tutto
che è necessario per aggiungere il filtro in Swish-e. Ma presenta anche una serie di problemi. Per
ad esempio, se si utilizza uno script Perl per eseguire il filtraggio, può essere molto lento poiché
Lo script di filtro deve essere eseguito (e quindi compilato) per ogni documento elaborato. Questo è
aggravato quando si utilizza il metodo -S http poiché il metodo -S http utilizza anche uno script Perl
che viene eseguito per ogni URL recuperato. Inoltre, quando si utilizza il metodo di input -S prog (lettura
input da un programma) utilizzando FileFilter significa che Swish-e deve prima leggere il file da
il programma esterno e quindi scrivere il file in un file temporaneo prima di eseguire il
filtro.

Con -S prog ha molto più senso filtrare il documento nel programma che è
recuperare i documenti piuttosto che far leggere il file a swish-e nella memoria, scriverlo in un
file temporaneo e quindi eseguire un programma esterno.

La distribuzione Swish-e contiene un paio di programmi di esempio -S prog. ragno.pl è un
Web spider abbastanza completo che offre molte più opzioni rispetto al metodo http -S.
Ed è anche molto più veloce rispetto all'esecuzione di -S http.

Il ragno ha un file di configurazione perl, il che significa che puoi aggiungere la logica di programmazione direttamente
nel file di configurazione senza modificare il programma spider. Un po' di logica che è
nel file di configurazione dello spider è fornita una funzione di "call-back" che consente di
filtrare il contenuto. In altre parole, prima che il ragno passi un documento web recuperato a
swish per indicizzare lo spider può chiamare una semplice subroutine nella configurazione dello spider
file passando il documento e il suo tipo di contenuto. La subroutine può quindi esaminare il
tipo di contenuto e decidere se il documento deve essere filtrato.

Ad esempio, quando si elabora un documento di tipo "application/msword" la call-back
la subroutine potrebbe chiamare il modulo perl doc2txt.pm e un documento di tipo "appliation/pdf"
potrebbe utilizzare il modulo pdf2html.pm. Il prog-bin/SwishSpiderConfig.pl il file mostra questo
utilizzo.

Questo sistema funziona abbastanza bene, ma significa anche che è necessario più lavoro per impostarlo
filtri. Innanzitutto, è necessario verificare esplicitamente i tipi di contenuto specifici e quindi chiamare il
modulo Perl appropriato, e in secondo luogo, devi sapere come ogni modulo deve essere chiamato e
come ciascuno restituisce il contenuto eventualmente modificato.

Arriva SWISH::Filter.

Per semplificare le cose è stato creato il modulo Perl SWISH::Filter. L'idea di questo modulo
è che esiste un'interfaccia utilizzata per filtrare tutti i tipi di documenti. Quindi, invece di
per verificare tipi specifici di contenuto, basta passare il tipo di contenuto e il documento a
il modulo SWISH::Filter e restituisce un nuovo tipo di contenuto e documento se è stato
filtrati. I filtri che svolgono il lavoro effettivo sono progettati con un'interfaccia standard e
funzionano come i "plug-in" dei filtri. Aggiungere nuovi filtri significa semplicemente scaricare il filtro su un
directory e non sono necessarie modifiche al file di configurazione dello spider. Scarica un filtro
per Postscript e la prossima volta che eseguirai l'indicizzazione i tuoi file Postscript saranno indicizzati.

Poiché i filtri sono standardizzati, si spera che quando si ha la necessità di filtrare i documenti
di un tipo specifico ci sarà già un filtro pronto per l'uso.

Ora, si noti che i moduli Perl potrebbero eseguire o meno la conversione effettiva di un documento.
Ad esempio, il modulo di conversione PDF richiama i programmi pdfinfo e pdftotext. Questi
i programmi (parte del pacchetto Xpfd) devono essere installati separatamente dai filtri.

Il file di configurazione spider di esempio SwishSpiderConfig.pl mostra come utilizzare
Modulo SWISH::Filter per il filtraggio. Questo file è installato in
$prefix/share/doc/swish-e/examples/prog-bin, dove $prefix è normalmente / Usr / local su Unix-
macchine da scrivere.

Il metodo di filtraggio SWISH::Filter può essere utilizzato anche con il metodo http -S di
indicizzazione. Per impostazione predefinita, ragnetto programma (lo script di supporto Perl che recupera
documenti dal web) tenterà di utilizzare il modulo SWISH::Filter se può essere trovato in
Percorso della libreria Perls. Questo percorso è impostato automaticamente per spider.pl ma non per swishspider
(perché rallenterebbe un metodo che è già lento e spider.pl è consigliato rispetto
il metodo -S http).

Pertanto, tutto ciò che è richiesto per utilizzare questo sistema con -S http è l'impostazione dell'array @INC
per puntare alla directory del filtro.

Ad esempio, se la distribuzione swish-e è stata decompressa in ~/swish-e:

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

consentirà al metodo http -S di utilizzare il modulo SWISH::Filter.

Nota che se non stai utilizzando il modulo SWISH::Filter potresti voler modificare il
ragnetto programma e disabilitare l'uso del modulo SWISH::Filter utilizzando questa impostazione:

usa la costante USE_FILTERS => 0; # disabilita SWISH::Filter

Ciò impedisce al programma di tentare di utilizzare il modulo SWISH::Filter per ogni non-
URL di testo che viene recuperato. Naturalmente, se sei preoccupato per la velocità di indicizzazione, dovresti
utilizzare il metodo -S prog con spider.pl invece di -S http.

Se non stai eseguendo lo spidering, ma vuoi comunque utilizzare il modulo SWISH::Filter per
filtraggio puoi usare il programma DirTree.pl (in $prefix/lib/swish-e). Questo è un semplice
programma che attraversa il file system e utilizza SWISH::Filter per il filtraggio.

Ecco due esempi di come eseguire un programma di filtro, uno utilizzando "FileFilter" di Swish-e
direttiva, un altro che utilizza un programma con metodo di input "prog". Vedere il SwishSpiderConfig.pl filetto
per un esempio di utilizzo del modulo SWISH::Filter.

Questi filtri utilizzano semplicemente il programma "/bin/gatto" come filtro e indicizza solo i file .html.

Per prima cosa, utilizzando il metodo "FileFilter", ecco l'intero file di configurazione (swish.conf):

IndexDir .
Solo indice .html
Filtro file .html "/bin/gatto" "'%P'"

e indicizzare con il comando

swish-e -c swish.conf -v 1

Ora, la stessa cosa avviene con l'utilizzo del metodo di input sorgente del documento "-S prog" e un Perl
programma chiamato catfilter.pl. Puoi vedere che è molto più lavoro rispetto all'utilizzo del
Metodo "FileFilter" sopra, ma fornisce un posto per eseguire elaborazioni aggiuntive. In questo
Ad esempio, il metodo "prog" è solo leggermente più veloce. Ma se avessi bisogno di uno script Perl per
eseguito come FileFilter, "prog" sarà notevolmente più veloce.

#!/usr/local/bin/perl -w
usare rigorosamente;
usa File::Find; # per ricorsivare un albero di directory

$/ = indefinito;
trova(
{ voluto => \&voluto, no_chdir => 1, },
'.',
);

sotto ricerca {
ritorna se -d;
restituisci a meno che /\.html$/;

il mio $mtime = (stat)[9];

il mio $figlio = open( FH, '-⎪' );
die "Impossibile eseguire il fork di $!" a meno che non sia definito $child;
esecutore '/bin/gatto', $_ a meno che $child;

il mio $content = ;
la mia $dimensione = lunghezza $contenuto;

stampa <
Lunghezza del contenuto: $size
Ultimo-Mtime: $mtime
Nome del percorso: $_

EOF

stampa ;
}

E indicizza con il comando:

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

Questo esempio probabilmente non funzionerà su Windows a causa dell'apertura '-⎪'. Un semplice piped
open potrebbe funzionare altrettanto bene:

Cioè, sostituisci:

il mio $figlio = open( FH, '-⎪' );
die "Impossibile eseguire il fork di $!" a meno che non sia definito $child;
esecutore '/bin/gatto', $_ a meno che $child;

con questo:

aperto(FH, "/bin/gatto $_ ⎪" ) o muori $!;

Perl cercherà di evitare di eseguire il comando tramite la shell se i metacaratteri non sono
passato all'open. Vedi "perldoc -f open" per maggiori informazioni.

Hey, ma I ad appena volere a sapere come a Index PDF documenti!

Vedi gli esempi nel conf directory e i commenti nella SwishSpiderConfig.pl file.

Vedi la domanda precedente per i dettagli sul filtraggio. Il metodo che decidi di utilizzare sarà
dipende dalla velocità con cui vuoi indicizzare e dal tuo livello di familiarità con l'uso dei moduli Perl.

Indipendentemente dal metodo di filtraggio utilizzato, sarà necessario installare i pacchetti Xpdf
disponibile da http://www.foolabs.com/xpdf/.

sono utilizzando Windows e non può ottenere Filtri or , il prog ingresso metodo a lavoro!

Sia il metodo di input "-S prog" che i filtri utilizzano la chiamata di sistema "popen()" per eseguire il
programma esterno. Se il programma esterno è, ad esempio, uno script perl, è necessario
dire a Swish-e di eseguire perl, invece dello script. Swish-e convertirà le barre in avanti in
barre rovesciate quando si esegue in Windows.

Ad esempio, dovresti specificare il percorso per perl come (supponendo che questo sia il percorso in cui si trova perl)
sul tuo sistema):

IndexDir e:/perl/bin/perl.exe

Oppure esegui un filtro come:

FileFilter .foo e:/perl/bin/perl.exe 'myscript.pl "%p"'

Spesso è più semplice installare semplicemente Linux.

Come do I Index non in lingua inglese parole?

Swish-e indicizza solo caratteri a 8 bit. Questo è il set di caratteri Latin-8859 ISO 1-1 e
include molte lettere (e simboli) non inglesi. Finché sono elencati in
"WordCharacters" verranno indicizzati.

In realtà, probabilmente puoi indicizzare qualsiasi set di caratteri a 8 bit, a patto che non mescoli
set di caratteri nello stesso indice e non utilizzare libxml2 per l'analisi (vedere sotto).

La direttiva "TranslateCharacters" (SWISH-CONFIG) può tradurre i caratteri durante l'indicizzazione
e la ricerca. È possibile specificare la mappatura di un carattere su un altro carattere con
Direttiva "TranslateCharacters".

"TranslateCharacters :ascii7:" è un set predefinito di caratteri che verranno tradotti
caratteri a otto bit in caratteri ascii7. Utilizzando la regola ":ascii7:", ad esempio,
tradurre "Ääç" in "aac". Ciò significa: cercare "Çelik", "çelik" o "celik" troverà tutti
corrispondono alla stessa parola.

Nota: quando si utilizza libxml2 per l'analisi, i documenti analizzati vengono convertiti internamente (all'interno
libxml2) in UTF-8. Questo viene convertito in ISO 8859-1 Latin-1 durante l'indicizzazione. Nei casi in cui
una stringa non può essere convertita da UTF-8 a ISO 8859-1 (perché contiene caratteri non 8859-1
caratteri), la stringa verrà inviata a Swish-e nella codifica UTF-8. Ciò si tradurrà in
alcune parole sono indicizzate in modo errato. Impostando "ParserWarningLevel" su 1 o più verrà visualizzato
avvisi quando la conversione da UTF-8 a 8859-1 fallisce.

Può I Aggiungi Rimuovi file da an indice?

Prova a compilare swish-e con l'opzione "--enable-incremental".

Il resto di queste FAQ si applica al formato swish-e predefinito.

Swish-e al momento non ha modo di aggiungere o rimuovere elementi dal suo indice. Tuttavia, gli indici Swish-e
così rapidamente che spesso è possibile reindicizzare l'intero set di documenti quando un file ha bisogno
da aggiungere, modificare o rimuovere. Se stai eseguendo lo spidering di un sito remoto, allora considera
memorizzazione nella cache dei documenti compressi localmente.

Le aggiunte incrementali possono essere gestite in diversi modi, a seconda della situazione.
Probabilmente è più semplice creare un indice principale ogni notte (o ogni settimana), e poi
crea un indice solo dei nuovi file tra i processi di indicizzazione principali e usa l'opzione "-f"
per passare entrambi gli indici a Swish-e durante la ricerca.

È possibile unire gli indici in un unico indice (invece di usare -f), ma non è chiaro che
questo ha qualche vantaggio rispetto alla ricerca in più indici.

Come si crea l'indice incrementale?

Un metodo consiste nell'utilizzare l'opzione "-N" per passare un percorso di file a Swish-e durante l'indicizzazione.
indicizzerà solo i file che hanno una data di ultima modifica "più recente" rispetto al file fornito
con l'opzione "-N".

Questa opzione ha lo svantaggio che Swish-e deve elaborare ogni file in ogni directory
come se dovessero essere indicizzati (il test per "-N" viene eseguito per ultimo, subito prima dell'indicizzazione
(inizio del contenuto del file e dopo che tutti gli altri test sul file sono stati completati) --
tutto questo solo per trovare qualche nuovo file.

Inoltre, se si utilizza il file indice Swish-e come file passato a "-N", potrebbero esserci file che
sono stati aggiunti dopo l'avvio dell'indicizzazione, ma prima che il file di indice fosse scritto. Questo potrebbe
comporta la mancata aggiunta di un file all'indice.

Un'altra opzione è quella di mantenere un albero di directory parallelo che contiene collegamenti simbolici che puntano a
i file principali. Quando un nuovo file viene aggiunto (o modificato) all'albero delle directory principale,
creare un collegamento simbolico al file reale nell'albero delle directory parallelo. Quindi indicizza semplicemente il
directory symlink per generare l'indice incrementale.

Questa opzione ha lo svantaggio che è necessario avere un programma centrale che crea il
nuovi file che possono anche creare i collegamenti simbolici. Ma l'indicizzazione è piuttosto veloce poiché Swish-e
deve solo guardare i file che devono essere indicizzati. Quando si esegue l'indicizzazione completa,
basta semplicemente scollegare (eliminare) tutti i collegamenti simbolici.

Entrambi questi metodi presentano problemi per cui i file potrebbero finire in entrambi gli indici o i file potrebbero essere
escluso da un indice. Utilizzo di blocchi di file durante l'indicizzazione e ricerche hash durante le ricerche
può aiutare a prevenire questi problemi.

I eseguire il su of memoria cerca a Index my File.

È vero che l'indicizzazione può occupare molta memoria! Swish-e è estremamente veloce a
indicizzazione, ma ciò avviene a scapito della memoria.

La soluzione migliore è installare più memoria.

Un'altra opzione è usare l'opzione "-e". Ciò richiederà meno memoria, ma l'indicizzazione sarà
impiega più tempo poiché non tutti i dati verranno memorizzati nella memoria durante l'indicizzazione. Quanta memoria in meno
e quanto tempo in più dipende dai documenti che stai indicizzando e dall'hardware che
tu stai usando.

Ecco un esempio di indicizzazione di tutti i file .html in /usr/doc su Linux. Questo primo esempio è
senza "-e" e ha utilizzato circa 84 MB di memoria:

270279 parole uniche indicizzate.
23841 file indicizzati. 177640166 byte totali.
Tempo trascorso: 00:04:45 Tempo CPU: 00:03:19

Questo è anche con "-e" e utilizza circa 26 MB di memoria:

270279 parole uniche indicizzate.
23841 file indicizzati. 177640166 byte totali.
Tempo trascorso: 00:06:43 Tempo CPU: 00:04:12

È anche possibile creare un numero di indici più piccoli e poi unirli insieme con "-M". Utilizzando
"-e" durante l'unione consente di risparmiare memoria.

Infine, se si crea un numero di indici più piccoli, è possibile specificare più di un indice
quando si effettua una ricerca utilizzando l'opzione "-f". L'ordinamento di grandi set di risultati in base a una proprietà sarà
più lento quando si specificano più file di indice durante la ricerca.

"pure molti aprire File" quando indicizzazione con -e opzione

Alcune piattaforme segnalano "troppi file aperti" quando si utilizza l'opzione economica -e. L'opzione -e
La funzionalità utilizza molti file temporanei (qualcosa come 377) più i file di indice e questo può
superare i limiti del tuo sistema.

A seconda della piattaforma, potrebbe essere necessario impostare "ulimit" o "unlimit".

Ad esempio, nella shell bash di Linux:

$ ulimit -n 1024

O sotto una vecchia Sparc

% illimita file aperti

My sistema Admin dice Swish-e usa pure molti of , il PROCESSORE!

Questa è una buona cosa! Quella CPU costosa dovrebbe essere impegnata.

L'indicizzazione richiede molto lavoro: per velocizzare l'indicizzazione, gran parte del lavoro viene svolto in memoria.
che riduce la quantità di tempo in cui Swish-e attende l'I/O. Ma ci sono due cose che devi
puoi provare:

L'opzione "-e" eseguirà Swish-e in modalità economica, che utilizza il disco per memorizzare i dati mentre
indicizzazione. Questo rende Swish-e un po' più lento, ma utilizza anche meno memoria. Poiché è
scrivendo su disco più spesso, trascorrerai più tempo in attesa di I/O e meno tempo in
CPU. Forse.

L'altra cosa è semplicemente abbassare la priorità del lavoro utilizzando il bello(1) comando:

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

Se sei preoccupato per il tempo di ricerca, assicurati di utilizzare le opzioni -b e -m solo per
restituisci una pagina alla volta. Se sai che i tuoi set di risultati saranno grandi e che
desidera restituire i risultati una pagina alla volta, e spesso molte pagine dello stesso
verrà richiesta una query, potresti essere intelligente nel richiedere tutti i documenti al primo
richiesta e quindi memorizza nella cache i risultati in un file temporaneo. Il modulo perl File::Cache
rende tutto questo molto semplice da realizzare.

ragnatela

Come può I Index documenti on a sito web server?

Se possibile, utilizzare il metodo del file system "-S fs" di indicizzazione per indicizzare i documenti nel tuo web
area del file system. Questo evita il sovraccarico di spidering di un server web ed è molto
più veloce. ("-S fs" è il metodo predefinito se "-S" non è specificato).

Se ciò è impossibile (il server web non è locale o i documenti sono dinamicamente
generato), Swish-e fornisce due metodi di spidering. Innanzitutto, include il metodo http
di indicizzazione "-S http". Sono disponibili numerose direttive di configurazione speciali che
controllo spidering (vedere "Direttive solo per il metodo di accesso HTTP" in SWISH-CONFIG). A
lo script di supporto perl (swishspider) è incluso nel src directory per aiutare con lo spidering
server web. Ci sono configurazioni di esempio per lo spidering in conf directory.

A partire da Swish-e 2.2, esiste una fonte di documenti "prog" di uso generale in cui un programma può
fornirgli documenti per l'indicizzazione. Un certo numero di programmi di esempio possono essere trovati in
Directory "prog-bin", che include un programma per i server spider. Il file spider.pl fornito
Il programma è completo e facilmente personalizzabile.

Il vantaggio della funzione di origine del documento "prog" rispetto al metodo "http" è che
il programma viene eseguito solo una volta, dove il programma swishspider.pl utilizzato in "http"
Il metodo viene eseguito una volta per ogni documento letto dal server web. Il fork di
Swish-e e la compilazione dello script Perl possono essere piuttosto costosi in termini di tempo.

L'altro vantaggio del programma "spider.pl" è che è semplice ed efficiente da aggiungere
filtraggio (ad esempio per documenti PDF o MS Word) direttamente nella configurazione di spider.pl e
include funzionalità come controlli MD5 per prevenire indicizzazioni duplicate, opzioni per evitare
analizzare alcuni file, o indicizzarli, ma evita di farlo. E poiché è un programma Perl, c'è
nessun limite alle funzionalità che puoi aggiungere.

Perché effettua fruscio rapporto "./swishspider: non è un trovato"?

Il file ragnetto esiste dove viene visualizzato il messaggio di errore? In caso contrario, impostare
opzione di configurazione SpiderDirectory per puntare alla directory in cui si trova ragnetto
il programma è stato trovato, oppure posizionare il ragnetto programma nella directory corrente durante l'esecuzione
swish-e.

Se stai utilizzando Windows, assicurati che "perl" sia nel tuo percorso. Prova a digitare perl da parte di un
prompt dei comandi.

Se non stai utilizzando Windows, assicurati che la riga shebang (la prima riga del
Il programma swishspider che inizia con #!) punta alla posizione corretta di perl.
In genere questo sarà /usr/bin/perl or /usr/local/bin/perl. Inoltre, assicurati di
avere permessi di esecuzione e lettura su ragnetto.

. ragnetto Lo script perl viene utilizzato solo con il metodo di indicizzazione -S http.

sono utilizzando , il ragno.pl Programma a ragno my sito web sito, ma alcuni grandi file sono non è un
indicizzato.

Il programma "spider.pl" ha un limite predefinito di dimensione del file di 5 MB. Questo può essere modificato con
l'impostazione del parametro "max_size". Per maggiori informazioni, vedere "perldoc spider.pl".

I ancora non think contro tutti i my sito web pagine sono essendo indicizzato.

. ragno.pl il programma ha un certo numero di opzioni di debug e può essere piuttosto prolisso in
che ti dice cosa sta succedendo e perché. Vedi "perldoc spider.pl" per le istruzioni.

fruscio is non è un ragnatela Javascript link!

Swish non può seguire i link generati da Javascript, poiché sono generati dal browser
e non fanno parte del documento.

Come do I ragno Altri siti web e combinare it con my proprio (file system) indice?

È possibile unire due indici "-M" in un singolo indice oppure utilizzare "-f" per specificare più
più di un indice durante la ricerca.

Otterrai risultati migliori con il metodo "-f".

Ricerca

Come do I limitare Ricerche a ad appena Ricambi of , il indice?

Se riesci a identificare "parti" del tuo indice tramite il nome del percorso, hai due opzioni.

La prima opzione è indicizzare il percorso del documento. Aggiungi questo alla tua configurazione:

MetaNames swishdocpath

Ora puoi cercare parole o frasi nel nome del percorso:

swish-e -w 'foo AND swishdocpath=(sales)'

Quindi verranno trovati solo i documenti con la parola "foo" e in cui il percorso del file contiene
"vendite". Potrebbe non funzionare come vorresti, però, poiché entrambi questi percorsi
gioco:

/web/vendite/prodotti/index.html
/web/accounting/private/sales_we_messed_up.html

Questo problema può essere risolto cercando una frase (supponendo che "/" non sia un carattere di parola):

swish-e -w 'foo AND swishdocpath=("/web/sales/")'
swish-e -w 'foo AND swishdocpath=("web sales")' (stessa cosa)

La seconda opzione è un po' più potente. Con la direttiva "ExtractPath" puoi usare un
espressione regolare per estrarre un sottoinsieme del percorso e salvarlo come meta separato
Nome:

Dipartimento MetaNames
Espressione regolare del dipartimento ExtractPath !^/web/([^/]+).+$!$1/

Che dice di abbinare un percorso che inizia con "/web/" ed estrarre tutto ciò che segue
a, ma non includendo il successivo "/" e salvarlo nella variabile $1, quindi abbinare tutto
da "/" in poi. Quindi sostituisci l'intera stringa di corrispondenze con $1. E questo ottiene
indicizzato come meta nome "dipartimento".

Ora puoi effettuare ricerche come:

swish-e -w 'foo AND department=sales'

e assicurati di abbinare solo i documenti nel percorso /www/sales/*. Nota che
puoi mappare aree completamente diverse del tuo file system allo stesso metanome:

# contrassegna le pagine specifiche di marketing
Espressione regolare del dipartimento ExtractPath !^/web/(marketing⎪sales)/.+$!marketing/
Espressione regolare del dipartimento ExtractPath !^/internal/marketing/.+$!marketing/

# contrassegna le pagine dei dipartimenti tecnici
Espressione regolare del dipartimento ExtractPath !^/web/(tech⎪bugs)/.+$!tecnologia/

Infine, se hai qualcosa di più complicato, usa "-S prog" e scrivi un programma perl o
utilizzare un filtro per impostare un meta tag durante l'elaborazione di ciascun file.

Come is posto calcolato?

Il valore della proprietà "swishrank" viene calcolato in base allo schema di classificazione (o algoritmo)
hai selezionato. In questa discussione, ogni volta che la parola fantasia è utilizzato, dovresti consultare
il codice effettivo per maggiori dettagli. Dopotutto, è open source.

Cose che puoi fare per influenzare la classifica:

MetaNamesRank
Puoi configurare il tuo indice in modo che determinati valori di metanome siano più o meno influenzati rispetto ad altri.
Vedere l'opzione di configurazione "MetaNamesRank" in SWISH-CONFIG.

IgnoraConteggioParoleTotaleQuandoClassifica
Impostalo su 1 (predefinito) o 0 nel tuo file di configurazione. Vedi SWISH-CONFIG. NOTA: Devi impostare
impostarlo su 0 per utilizzare lo schema di classificazione IDF.

La struttura
Alla posizione di ciascun termine in ogni documento HTML viene assegnato un valore di struttura basato su
contesto in cui appare la parola. Il valore della struttura viene utilizzato per gonfiare artificialmente
la frequenza di ciascun termine in quel particolare documento. Questi valori strutturali sono
definito in config.h:

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

Ad esempio, se la parola "foo" appare nel titolo di un documento, lo Schema
tratta quel documento come se "foo" fosse apparso altre 7 volte.

Tutti i programmi condividono le seguenti caratteristiche:

E ricerche
Il valore di rango è la media di tutti i termini AND. Termini all'interno di un insieme di parentesi ()
sono mediati come un singolo termine (questa è una debolezza riconosciuta ed è in TODO
elenco).

ricerche OR
Il valore del rango viene sommato e poi raddoppiato per ogni coppia di termini OR. Ciò si traduce in
classifiche più elevate per i documenti che hanno più termini OR.

grado scalato
Dopo aver calcolato il punteggio grezzo di un documento, viene calcolato il punteggio finale.
utilizzando una sofisticata funzione "log()". Tutti i documenti vengono quindi scalati in base a un punteggio base
di 1000. Il documento più in alto avrà quindi sempre un valore "swishrank" di
1000

Ecco una breve panoramica del funzionamento dei diversi schemi. Il numero è tra parentesi.
dopo il nome c'è il valore per richiamare quello schema con "swish-e -R" o "RankScheme()".

Predefinito (0)
Lo schema di classificazione predefinito considera il numero di volte in cui un termine appare in un documento
(frequenza), il MetaNamesRank e il valore della struttura. Il rango potrebbe essere riassunto
come:

DocRank = Somma di (struttura + metabias)

Consideriamo questo output con la variabile DEBUG_RANK impostata in fase di compilazione:

Schema di classificazione: 0
La voce di parola 0 in posizione 6 ha struct 7
La voce di parola 1 in posizione 64 ha struct 41
La voce di parola 2 in posizione 71 ha struct 9
La voce di parola 3 in posizione 132 ha struct 9
La voce di parola 4 in posizione 154 ha struct 9
La voce di parola 5 in posizione 423 ha struct 73
La voce di parola 6 in posizione 541 ha struct 73
La voce di parola 7 in posizione 662 ha struct 73
Numero file: 1104. Classificazione grezza: 21. Frequenza: 8. Classificazione scalare: 30445
Conteggio della struttura:
struct 0x7 = conteggio di 1 (FILE TITOLO INTEGRALE) x mappa di rango di 8 = 8

struct 0x9 = conteggio di 3 (FILE DEL CORPO) x mappa di rango di 1 = 3

struct 0x29 = conteggio di 1 (FILE DEL CORPO DELL'INTESTAZIONE) x mappa di rango di 6 = 6

struct 0x49 = conteggio di 3 (FILE DEL CORPO EM) x mappa di rango di 1 = 3

Ogni istanza di parola inizia con un punteggio base di 1. Quindi per ogni istanza del tuo
parola, viene presa una somma corrente del valore strutturale di quella posizione della parola più qualsiasi
bias che hai configurato. Nell'esempio sopra, il rango grezzo è "1 + 8 + 3 + 6 + 3 =
21. "

Considerate questa frase:

struct 0x7 = conteggio di 1 (FILE TITOLO INTEGRALE) x mappa di rango di 8 = 8

Ciò significa che c'era un'istanza della nostra parola nel titolo del file. Il suo contesto
era nel tagset, all'interno del . Il <titolo> è il più specifico
struttura, quindi ottiene il punteggio RANK_TITLE: 7. Il grado base di 1 più la struttura
un punteggio di 7 è uguale a 8. Se ci fossero state due istanze di questa parola nel titolo, allora
il punteggio sarebbe stato "8 + 8 = 16".

IDF (1)
IDF è l'abbreviazione di Inverse Document Frequency. È un termine di classificazione sofisticato per indicare...
tenere conto della frequenza totale di un termine nell'intero indice, oltre alla
la frequenza del termine in un singolo documento. La classificazione IDF utilizza anche la densità relativa di un
parola in un documento per giudicarne la pertinenza. Le parole che compaiono più spesso in un documento rendono
quel documento ha un punteggio più alto e i documenti più lunghi non hanno un peso maggiore rispetto a quelli più corti.

Il programma IDF potrebbe essere riassunto come segue:

DocRank = Somma di (densità * idf * (struttura + metabias))

Considera questo output da DEBUG_RANK:

Schema di classificazione: 1
Numero file: 1104 Punteggio parola: 1 Frequenza: 8 File totali: 1451
Frequenza totale delle parole: 108 IDF: 2564
Parole totali: 1145877 Parole indicizzate in questo documento: 562
Numero medio di parole: 789 Densità: 1120 Peso delle parole: 28716
La voce di parola 0 in posizione 6 ha struct 7
La voce di parola 1 in posizione 64 ha struct 41
La voce di parola 2 in posizione 71 ha struct 9
La voce di parola 3 in posizione 132 ha struct 9
La voce di parola 4 in posizione 154 ha struct 9
La voce di parola 5 in posizione 423 ha struct 73
La voce di parola 6 in posizione 541 ha struct 73
La voce di parola 7 in posizione 662 ha struct 73
Grado dopo la ponderazione IDF: 574321
grado scalato: 132609
Conteggio della struttura:
struct 0x7 = conteggio di 1 (FILE TITOLO INTEGRALE) x mappa di rango di 8 = 8

struct 0x9 = conteggio di 3 (FILE DEL CORPO) x mappa di rango di 1 = 3

struct 0x29 = conteggio di 1 (FILE DEL CORPO DELL'INTESTAZIONE) x mappa di rango di 6 = 6

struct 0x49 = conteggio di 3 (FILE DEL CORPO EM) x mappa di rango di 1 = 3

È simile allo schema predefinito, ma nota come il numero totale di file nel
l'indice e la frequenza totale delle parole (in contrapposizione alla frequenza del documento) sono entrambi
parte dell'equazione.

La classificazione è un argomento complicato. SWISH-E consente lo sviluppo di più schemi di classificazione
e sperimentato, utilizzando l'opzione -R (dal comando swish-e) e RankScheme
(vedi la documentazione API). Sperimenta e condividi i tuoi risultati tramite la lista di discussione.

Come può I limitare Ricerche a , il titolo, corpo, or Come? "O" Cosa?

Utilizzare l'opzione "-t".

I non può limitare Ricerche a titolo/corpo/commento.

oro, I non può Ricerca con arrivo nomi, contro tutti i , il nomi sono indicizzati as "pianura".

Controllare nel file config.h se #define INDEXTAGS è impostato su 1. In tal caso, modificarlo in 0,
ricompilare e indicizzare nuovamente. Quando INDEXTAGS è 1, TUTTI i tag vengono indicizzati come testo normale,
cioè indicizzi "title", "h1" e così via, E perdono il loro significato di indicizzazione. Se
INDEXTAGS è impostato su 0, indicizzerai comunque i meta tag e i commenti, a meno che tu non abbia
diversamente indicato nel file di configurazione utente con la direttiva IndexComments.

Controlla anche l'impostazione "UndefinedMetaTags" nel tuo file di configurazione.

Ho provato running , il incluso CGI copione e I ottenere a "Interno server Errore"

Il debug degli script CGI esula dallo scopo di questo documento. Errore interno del server
significa fondamentalmente "controllare il registro del server web per un messaggio di errore", poiché può significare un errore
riga shebang (#!), un modulo perl mancante, errore di trasferimento FTP o semplicemente un errore nel
programma. Lo script CGI swish.cgi nella esempio la directory contiene alcuni debug
suggerimenti. Digitare "perldoc swish.cgi" per informazioni.

Ci sono anche moltissime FAQ sulla CGI disponibili su Internet. Una rapida ricerca sul web dovrebbe
Offrire aiuto. Come ultima risorsa, potresti chiedere aiuto al tuo amministratore web...

Quando I prova a vista , il swish.cgi pagina I vedere , il testuali of , il Perl .

Il tuo server web non è configurato per eseguire il programma come script CGI. Questo problema è
descritto in "perldoc swish.cgi".

Come do I make Swish-e evidenziare parole in Ricerca risultati?

Risposta breve:

Utilizzare gli script swish.cgi o search.cgi forniti che si trovano in esempio directory.

Risposta lunga:

Swish-e non può perché non ha accesso ai documenti di origine al momento della restituzione
risultati, ovviamente. Ma un programma front-end di tua creazione può evidenziare i termini. Il tuo
il programma può aprire i documenti sorgente e quindi utilizzare espressioni regolari per sostituire
termini di ricerca con parole evidenziate o in grassetto.

Ma questo metodo fallirà con tutti i documenti sorgente, tranne quelli più semplici. Per i documenti HTML,
ad esempio, è necessario analizzare il documento in parole e tag (e commenti). Una parola che
desidera evidenziare può estendersi su più tag HTML o essere una parola in un URL e si desidera
evidenziare l'intero testo del collegamento.

I moduli Perl come HTML::Parser e XML::Parser rendono possibile l'estrazione di parole. Successivamente,
devi considerare che Swish-e utilizza impostazioni come WordCharacters, BeginCharacters,
EndCharacters, IgnoreFirstChar e IgnoreLast, char per definire una "parola". Cioè, tu
non riesco a considerare una stringa di caratteri con uno spazio bianco su entrambi i lati una parola.

Quindi cose come TranslateCharacters e HTML Entities possono trasformare una parola sorgente in
qualcos'altro, per quanto riguarda Swish-e. Infine, le ricerche possono essere limitate da
metanomi, quindi potrebbe essere necessario limitare l'evidenziazione solo a parti della fonte
documento. Aggiungi le ricerche di frasi e le stopword nell'equazione e puoi vedere che è
non è un problema banale da risolvere.

Tuttavia, non tutte le speranze sono perse, poiché Swish-e fornisce un aiuto. Utilizzando l'opzione "-H"
restituirà nelle intestazioni le impostazioni dell'indice (o degli indici) correnti per WordCharacters
(e altri) necessari per analizzare i documenti sorgente mentre li analizza durante l'indicizzazione,
e restituirà un'intestazione "Parole analizzate:" che mostrerà come è stata analizzata la query
internamente. Se si utilizza l'indicizzazione fuzzy (stemming delle parole, soundex o metafono), allora
sarà inoltre necessario estrarre la radice di ogni parola nel documento prima di confrontarla con "Parsed
Parole:" restituite da Swish-e.

Il codice di derivazione Swish-e è disponibile utilizzando il modulo Perl Swish-e
(SWISH::API) o la libreria C (inclusa nella distribuzione swish-e), oppure utilizzando
Modulo SWISH::Stemmer disponibile su CPAN. Sempre su CPAN è disponibile il modulo
Text::DoubleMetaphone. L'utilizzo di SWISH::API fornisce probabilmente il miglior supporto per lo stemming.

Do filtri effetto , il performance durante ricerca?

No. I filtri (FileFilter o tramite il metodo "prog") vengono utilizzati solo per creare l'indice di ricerca
database. Durante le richieste di ricerca non verranno effettuate chiamate di filtro.

I avere read , il FAQ ma I ancora avere informazioni utilizzando Swish-e.

La lista di discussione Swish-e è il posto giusto dove andare. http://swish-e.org/Si prega di non inviare e-mail
direttamente agli sviluppatori. La lista è il posto migliore per porre domande.

Prima di postare, per favore leggi DOMANDE E RISOLUZIONE DEI PROBLEMI situato nella pagina INSTALL.
Dovresti anche cercare nell'archivio della lista di discussione Swish-e che puoi trovare su
sito web swish-e.

In breve, quando chiedi aiuto assicurati di includere quanto segue.

* La versione swish-e (./swish-e -V)
* Cosa stai indicizzando (e forse un campione) e il numero di file
* Il tuo file di configurazione Swish-e
* Eventuali messaggi di errore segnalati da Swish-e

funzionalità di Info


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

.

Utilizzare SWISH-FAQ online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad




×
Cookie per pubblicità
❤️Fai acquisti, prenota o acquista qui: nessun costo, aiuta a mantenere i servizi gratuiti.