אנגליתצרפתיתספרדי

Ad


סמל OnWorks

SWISH-FAQ - מקוון בענן

הפעל את SWISH-FAQ בספק אירוח חינמי של OnWorks על אובונטו מקוון, פדורה מקוון, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה SWISH-FAQ שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


SWISH-FAQ - השאלות הנפוצות של Swish-e. תשובות לשאלות נפוצות

סקירה כללית


רשימת שאלות נפוצות ותשובות. אנא עיין במסמך זה לפני שתבקש
שאלות ברשימת הדיונים של Swish-e.

כללי שאלות

מה is סוויש-אי?

Swish-e הוא Sלנטרל Web Iנדקס Sמערכת עבור Hאומנס - Eמשופרת. עם זה, אתה יכול במהירות ו
אינדקס בקלות ספריות של קבצים או אתרי אינטרנט מרוחקים וחפש אחר האינדקסים שנוצרו
מילים וביטויים.

אז, is סוויש-ה a search מנוע?

ובכן כן. כנראה השימוש הנפוץ ביותר ב- Swish-e הוא לספק מנוע חיפוש לאינטרנט
אתרים. הפצת Swish-e כוללת סקריפטים של CGI שניתן להשתמש בהם כדי להוסיף א
search מנוע עבור אתר האינטרנט שלך. ניתן למצוא את סקריפטי ה-CGI ב- דוגמה מדריך של
חבילת ההפצה. ראה את README קובץ לקבלת מידע על התסריטים.

אבל Swish-e יכול לשמש גם לאינדקס כל מיני נתונים, כגון הודעות דואר אלקטרוני, נתונים
מאוחסן במערכת ניהול מסד נתונים יחסי, מסמכי XML או מסמכים כגון
מסמכי Word ו-PDF -- או כל שילוב של מקורות אלה בו-זמנית. חיפושים
יכול להיות מוגבל לשדות או MetaNames בתוך מסמך, או מוגבל לאזורים בתוך
מסמך HTML (למשל גוף, כותרת). תוכניות אחרות מלבד יישומי CGI יכולות להשתמש ב- Swish-e,
גם כן.

צריך I שדרוג if אני כְּבָר ריצה a קודם גרסה of סוויש-אי?

מספר רב של תיקוני באגים, תוספות תכונות ותיקוני לוגיקה בוצעו בגרסה
2.2. בנוסף, מהירות האינדקס שופרה באופן דרסטי (דיווחים על זמני האינדקס
משתנים מארבע שעות ל-5 דקות), וחלקים עיקריים של מנתחי האינדקס והחיפוש
נכתבו מחדש. יש אפשרויות ניפוי באגים טובות יותר, פורמטי פלט משופרים ועוד
מטא נתונים של מסמך (למשל תאריך שינוי אחרון, סיכום מסמך), אפשרויות לאינדקס מ
מקורות נתונים חיצוניים, ועכביש מהיר יותר רק כדי להזכיר כמה שינויים. (ראה את השינויים
קובץ למידע נוסף.

מאז כל כך הרבה מאמץ הושקע בגרסה 2.2, תמיכה בגרסאות קודמות תהיה
כנראה להיות מוגבל.

הם שם בינרי הפצות זמין ל סוויש-ה on פלטפורמה פו?

פו? ובכן, כן יש כמה הפצות בינאריות זמינות. אנא עיין באינטרנט Swish-e
אתר לרשימה ב http://swish-e.org/.

באופן כללי, מומלץ לבנות את Swish-e ממקור, אם אפשר.

Do I צורך ל רנדקס my אתר כל אחד זמן I שדרוג ל a חדש סוויש-ה גִרְסָה?

לפעמים זה אולי לא ממש נחוץ, אבל מכיוון שאתה לא באמת יודע אם משהו
במדד השתנה, זה כלל טוב לאינדקס מחדש.

מה זה מה היא יתרון of באמצעות מה היא libxml2 ספריה ל ניתוח HTML?

ניתן לקשר את Swish-e עם libxml2, ספריה לעבודה עם מסמכי HTML ו-XML.
Swish-e יכול להשתמש ב-libxml2 לניתוח מסמכי HTML ו-XML.

מנתח libxml2 הוא מנתח טוב יותר מאשר מנתח HTML המובנה של Swish-e. זה מציע יותר
תכונות, והוא עושה עבודה הרבה יותר טובה בחילוץ הטקסט מדף אינטרנט. ב
בנוסף, אתה יכול להשתמש בהגדרת התצורה "ParserWarningLevel" כדי למצוא מבנה
שגיאות במסמכים שלך שיכולות (ועשויות עם מנתח ה-HTML של Swish-e) לגרום למסמכים
להיות אינדקס שגוי.

Libxml2 אינו נדרש, אך מומלץ בחום לניתוח מסמכי HTML. שֶׁלָה
מומלץ גם לניתוח XML, מכיוון שהוא מציע הרבה יותר תכונות מה-Expat הפנימי
מנתח xml.c.

למנתח HTML הפנימי תהיה תמיכה מוגבלת, ויש לו מספר באגים. ל
לדוגמה, לא תמיד ישויות HTML יומרו כהלכה ואין למאפיינים
ישויות שהומרו. המנתח הפנימי נוטה להתבלבל כאשר מנותח HTML לא חוקי
כאשר מנתח libxml2 לא מתבלבל באותה תדירות. המבנה מזוהה טוב יותר
עם מנתח libxml2.

אם אתה משתמש במודול Perl (הממשק C לספריית Swish-e) אולי תרצה
לבנות שתי גרסאות של Swish-e, אחת עם ספריית libxml2 מקושרת בבינארי, ואחת
בלי, ובנה את מודול Perl מול הספרייה בלי הקוד libxml2. זה
כדי לחסוך מקום בספרייה. יש לקוות שהספרייה תתפצל מתישהו בקרוב
אינדקס וקוד חיפוש (מתנדבים מוזמנים).

האם סוויש-ה לכלול a CGI מִמְשָׁק?

כן. סוג של.

ישנם שני סקריפטים של CGI לדוגמה, swish.cgi ו-search.cgi. שניהם מותקנים ב
$prefix/lib/swish-e.

שניהם דורשים מעט עבודה להתקנה ולשימוש. Swish.cgi הוא כנראה מה שרוב האנשים יהיו
רוצה להשתמש מכיוון שהוא מכיל תכונות נוספות. Search.cgi מיועד לאלו שרוצים להתחיל עם
סקריפט קטן ולהתאים אותו לצרכים שלהם.

דוגמה לשימוש ב- swish.cgi ניתנת בדף ה-man INSTALL, והוא ה-swish.cgi
תיעוד. כמו לעתים קרובות, זה יהיה קל יותר לשימוש אם תקרא לראשונה את
תיעוד.

נא לנקוט משנה זהירות לגבי סקריפטים של CGI שנמצאים באינטרנט לשימוש עם Swish-e. חלקם כן
לא מאובטח.

סקריפטי CGI לדוגמה שנכללו עוצבו מתוך מחשבה על אבטחה. בלי קשר, אתה כן
מומלץ שהמומחה המקומי שלך ב-Perl יבדוק אותו (ואת כל שאר סקריפטי ה-CGI שבהם אתה משתמש)
לפני הכנסתו לייצור. זו פשוט מדיניות טובה שיש לפעול לפיה.

איך לבטח is סוויש-אי?

אין לנו בעיות אבטחה בשימוש ב- Swish-e. תשומת לב זהירה נעשתה עם
בהתייחס לבעיות אבטחה נפוצות כגון חריגות מאגר בעת תכנות Swish-e.

בעיית האבטחה הסבירה ביותר עם Swish-e היא כאשר הוא מופעל באמצעות CGI כתוב בצורה גרועה
מִמְשָׁק. זה לא מוגבל לסקריפטים של CGI שנכתבו ב-Perl, כי זה קל לא פחות
לכתוב סקריפט CGI לא מאובטח ב-C, Java, PHP או Python. מקור מידע טוב הוא
כלול בהפצת Perl. הקלד "perldoc perlsec" בהנחיה המקומית שלך לקבלת מידע נוסף
מֵידָע. מסמך חובה נוסף נמצא בכתובת
"http://www.w3.org/Security/faq/wwwsf4.html".

שימו לב שיש הרבה חופשי עדיין זמינים סקריפטים לא בטוחים וכתובים בצורה גרועה --
אפילו חלקם מיועדים לשימוש עם Swish-e. אנא בדוק היטב כל סקריפט CGI שבו אתה משתמש.
חינם זה לא מחיר כל כך טוב כשפורצים לשרת שלך...

צריך I לָרוּץ סוויש-ה as מה היא superuser (שורש)?

לעולם לא.

מה קבצים עושה סוויש-ה לִכתוֹב?

סוויש כותב את קובץ האינדקס, כמובן. זה מצוין עם "IndexFile"
הוראת תצורה או על ידי מתג שורת הפקודה "-f".

קובץ האינדקס הוא למעשה אוסף של קבצים, אבל כולם מתחילים בשם הקובץ
שצוין עם הנחיית "IndexFile" או מתג שורת הפקודה "-f".

לדוגמה, הקובץ המסתיים ב .לִתְמוֹך מכיל את מאפייני המסמך.

בעת יצירת קבצי האינדקס Swish-e מוסיף את התוסף .temp לשמות קבצי האינדקס.
כשהאינדקס הושלם Swish-e משנה את שם ה- .temp קבצים לקבצי האינדקס שצוינו על ידי
"IndexFile" או "-f". זה נעשה כדי שהאינדקסים הקיימים יישארו ללא נגיעה עד שזה יקרה
משלים את יצירת האינדקס.

Swish-e גם כותב קבצים זמניים במקרים מסוימים במהלך האינדקס (למשל "-s http", "-s
prog" עם מסננים), בעת מיזוג, ובעת שימוש ב-"-e"). קבצים זמניים נוצרים עם
מה היא מקסטמפ(3) פונקציה (עם הרשאת 0600 במערכות הפעלה דמויות יוניקס).

הקבצים הזמניים נוצרים בספרייה המצוינת על ידי משתני הסביבה
"TMPDIR" ו-"TMP" בסדר זה. אם אלה לא מוגדרים אז swish משתמש בהגדרה ה
הגדרת תצורה TmpDir. אחרת, הקובץ הזמני ימוקם ב-
ספרייה נוכחית.

פחית I מדד PDF ו MS-Word מסמכים?

כן, אתה יכול להשתמש ב- סינון כדי להמיר מסמכים תוך כדי אינדקס, או שאתה יכול להשתמש בתוכנית
ש"מזינה" מסמכים ל-Swish-e שכבר הומרו. ראה "אינדקס" להלן.

פחית I מדד מסמכים on a אינטרנט שרת?

כן, Swish-e מספקת שתי דרכים לאינדקס (עכביש) מסמכים בשרת אינטרנט. לִרְאוֹת
"עכביש" למטה.

Swish-e יכול לאחזר מסמכים ממערכת קבצים או משרת אינטרנט מרוחק. זה יכול
גם להפעיל תוכנית שמחזירה אליה מסמכים. תוכנית זו יכולה לאחזר
מסמכים ממסד נתונים, סינון קבצי מסמכים דחוסים, המרת קבצי PDF, חילוץ
נתונים מארכיוני דואר, או מאתרי אינטרנט מרוחקים של עכביש.

פחית I ליישם מילות מפתח in my מסמכים?

כן, Swish-e יכול לשייך מילים MetaNames תוך כדי אינדקס, ואתה יכול להגביל את שלך
חיפושים ל-MetaNames אלו תוך כדי חיפוש.

בקבצי HTML שלך אתה יכול לשים מילות מפתח בתגיות HTML META או בלוקים של XML.

לתגי META יכולים להיות שני פורמטים במסמכי המקור שלך:



ובפורמט XML (ניתן להשתמש גם במסמכי HTML בעת שימוש ב-libxml2):


קצת תוכן


לאחר מכן, כדי ליידע את Swish-e על קיומו של שם המטא במסמכים שלך, ערוך את
שורה בקובץ התצורה שלך:

MetaNames DC.subject meta1 meta2

בעת חיפוש אתה יכול כעת להגביל חלק או את כל מונחי החיפוש ל-MetaName זה. לדוגמה,
לחפש מסמכים המכילים את המילה תפוח ויש בהם גם פירות או בישול
המטא תג DC.subject.

מה יש לו מסמך נכסים?

מאפיין מסמך הוא בדרך כלל נתונים המתארים את המסמך. לדוגמה,
מאפיינים עשויים לכלול את שם הנתיב של המסמך, תאריך השינוי האחרון שלו, הכותרת שלו או שלו
גודל. Swish-e מאחסן את מאפייני המסמך בקובץ האינדקס, וניתן לדווח עליהם
חזרה בתוצאות החיפוש.

Swish-e משתמש גם במאפיינים למיון. אתה יכול למיין את התוצאות שלך לפי אחת או יותר
מאפיינים, בסדר עולה או יורד.

ניתן גם להגדיר מאפיינים בתוך המסמכים שלך. קובצי HTML ו-XML יכולים לציין תגים
(ראה שאלה קודמת) כמאפיינים. ה תוכן לאחר מכן ניתן להחזיר את התגים הללו
עם תוצאות החיפוש. ניתן להשתמש במאפיינים המוגדרים על ידי המשתמש גם למיון החיפוש
תוצאות.

לדוגמה, אם היו לך את הדברים הבאים במסמכים שלך



ו"יוצר" מוגדר כמאפיין (ראה "שמות נכסים" ב-SWISH-CONFIG) Swish-e יכול
החזר "מחלקת הנהלת חשבונות" עם התוצאה עבור אותו מסמך.

יוצר swish-e -w foo -p

או למיון:

יוצר swish-e -w foo -s

מה זה מה היא הבדל בֵּין MetaNames ו שמות נכסים?

MetaNames מאפשר חיפוש מילות מפתח במסמכים שלך. כלומר, אתה יכול להשתמש ב- MetaNames כדי
הגבל את החיפושים רק לחלקים מהמסמכים שלך.

PropertyNames, לעומת זאת, מגדירים טקסט שניתן להחזיר עם תוצאות, ויכולים
לשמש למיון.

שניהם משתמשים מטא תיוגים נמצא במסמכים שלך (כפי שמוצג בשתי השאלות לעיל) כדי להגדיר
הטקסט שבו ברצונך להשתמש בתור מאפיין או שם מטא.

אתה יכול להגדיר תג בתור שניהם מאפיין ומטא שם. לדוגמה:



להציב במסמכים שלך ולאחר מכן להשתמש בהגדרות התצורה של:

יוצר PropertyNames
יוצר MetaNames

יאפשר לך להגביל את החיפושים שלך למסמכים שנוצרו על ידי הנהלת חשבונות:

swish-e -w 'foo and creator=(חשבונאות)'

זה ימצא את כל המסמכים עם המילה "foo" שיש להם גם מטא תג של היוצר
מכיל את המילה "חשבונאות". זה באמצעות MetaNames.

ואפשר גם לומר:

יוצר swish-e -w foo -p

אשר יחזיר את כל המסמכים עם המילה "foo", אך התוצאות יכללו גם את
התוכן של המטא תג "יוצר" יחד עם התוצאות. זה באמצעות מאפיינים.

אתה יכול להשתמש גם במאפיינים ובשמות מטא בו-זמנית:

swish-e -w creator=(חשבונאות או שיווק) -p creator -s creator

שמחפש רק ב"יוצר" מטא שם עבור אחת מהמילים "חשבונאות" או
"שיווק", מדפיס את תוכן התוכן של "היוצר" רכוש, ומיון
התוצאות של "היוצר" רכוש שם.

(ראה גם את מתג פורמט הפלט "-x" ב-SWISH-RUN.)

פחית סוויש-ה מדד רב בתים דמויות?

לא. זה ידרוש הרבה עבודה כדי לשנות. אבל, Swish-e עובד עם תווים שמונה סיביות,
ניתן להשתמש בכל כך הרבה קבוצות תווים. שים לב שזה כן קורא ל-ANSI-C להנמיך() פונקציה
מה שכן תלוי בהגדרת המקום הנוכחי. לִרְאוֹת אזור(7) למידע נוסף.

מפתוח

איך do I לעבור סוויש-ה a רשימה of קבצים ל אינדקס?

נכון לעכשיו, אין הוראת תצורה לכלול קובץ המכיל רשימה
של קבצים לאינדקס. אבל, יש הנחיה לכלול קובץ תצורה אחר.

IncludeConfigFile /path/to/other/config

וב-"/path/to/other/config" אתה יכול לומר:

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

תוכל גם לציין יותר מקובץ תצורה אחד בשורת הפקודה:

./swish-e -c config_one config_two config_three

אפשרות נוספת היא ליצור ספרייה עם קישורים סמליים של הקבצים לאינדקס, ו
אינדקס רק את הספרייה הזו.

איך עושה סוויש-ה לדעת אשר מנתח ל להשתמש?

Swish יכול לנתח מסמכי HTML, XML וטקסט. המנתח מוגדר על ידי שיוך קובץ
הרחבה עם מנתח לפי הנחיית "IndexContents". אתה יכול להגדיר את מנתח ברירת המחדל
עם הנחיית "DefaultContents". אם למסמך לא יוקצה מנתח
ברירת המחדל למנתח HTML (HTML2 אם בנוי עם libxml2).

אתה יכול להשתמש במסננים או בתוכנה חיצונית כדי להמיר מסמכים ל-HTML, XML או טקסט.

פחית I רנדקס ו search at מה היא אותו הפעם

כן. החל מגרסה 2.2 Swish-e אינדקסים לקבצים זמניים, ולאחר מכן משנה את השם של
קבצים לאחר השלמת האינדקס. ברוב המערכות שמות שינויים הם אטומיים. אבל, מאז סוויש-ה
גם יוצר יותר מקובץ אחד במהלך האינדקס תהיה תקופה קצרה מאוד של
זמן בין שינוי שמות הקבצים השונים כאשר האינדקס אינו מסונכרן.

הגדרות ב src/config.h לשלוט בכמה אפשרויות הקשורות לקבצים זמניים, והשימוש בהם
במהלך האינדקס.

פחית I מדד ביטויים?

ביטויים מתווספים לאינדקס באופן אוטומטי. כדי לחפש ביטוי פשוט הכנס מרכאות כפולות
סביב הביטוי.

לדוגמה:

swish-e -w 'מנוע חיפוש מהיר וחופשי''

איך יכול I למנוע ביטויים החל מ- תואם לרוחב משפטים?

השתמש בהנחיית התצורה של BumpPositionCounterCharacters.

סוויש-ה לא מפתוח a מסוים מילה or משפט.

ישנם מספר פרמטרים של תצורה השולטים במה Swish-e מחשיב כ-a
"מילה" ויש לה תכונת ניפוי באגים כדי לעזור באיתור בעיות באינדקס.

הנחיות קובץ תצורה (SWISH-CONFIG) "WordCharacters", "BeginCharacters",
"EndCharacters", "IgnoreFirstChar" ו-"IgnoreLastChar" הן ההגדרות העיקריות ש- Swish-
e משתמש כדי להגדיר "מילה". ראה SWISH-CONFIG ו-SWISH-RUN לפרטים.

Swish-e משתמש גם בברירות מחדל של זמן קומפילציה עבור הגדרות רבות. אלה ממוקמים ב
src/config.h קובץ.

שימוש בארגומנטים של שורת הפקודה "-k", "-v" ו-"-T" שימושיים בעת ניפוי באגים
בעיות. שימוש ב-"-T INDEXED_WORDS" בזמן הוספה לאינדקס יציג כל מילה כפי שהיא
באינדקס. עליך לציין קובץ אחד בעת שימוש בתכונה זו מכיוון שהוא יכול ליצור הרבה
של התפוקה.

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

ייתכן שתרצה להוסיף לאינדקס קובץ בודד המכיל מילים שהן או אינן אינדקס
כפי שאתה מצפה ומשתמש ב-T כדי להוציא מידע ניפוי באגים על האינדקס. שימושי
הפקודה עשויה להיות:

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

לאחר שתראה כיצד Swish-e מנתח ומוסיף את המילים שלך לאינדקס, תוכל להתאים את ה
הגדרות תצורה שהוזכרו לעיל כדי לשלוט באילו מילים יתווספו לאינדקס.

פקודה שימושית נוספת עשויה להיות:

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

זה יציג מילים ברווחים לבנים שמנותחו מהמסמך (PARSED_WORDS), וכיצד אלו
מילים מפוצלות למילים נפרדות לאינדקס (INDEXED_WORDS).

איך do I לשמור סוויש-ה החל מ- מפתוח מספרים?

Swish-e מוסיף לאינדקס מילים כפי שהוגדרו על ידי ההגדרה "תווים מילים", כמתואר לעיל. לכן
כדי להימנע מהוספה לאינדקס של מספרים, פשוט הסר ספרות מההגדרה "תווים מילים".

יש גם כמה הגדרות ב src/config.h ששולטים באילו "מילים" יתווספו. אתה
יכול להגדיר את swish כך שלעולם לא יוסיף לאינדקס מילים שכולן ספרות, תנועות או עיצורים, או
המכילים יותר ממספר רצוף כלשהו של ספרות, תנועות או עיצורים. ב
באופן כללי, לא תצטרך לשנות הגדרות אלה.

כמו כן, יש תכונה ניסיונית שנקראת "תעלם מספר תווים" המאפשרת לך לעשות זאת
להגדיר קבוצה של תווים המתארים מספר. אם מילה מורכבת רק אלה
תווים זה לא יצורף לאינדקס.

סוויש-ה קריסות ו כוויות on a מסוים קובץ. מה יכול I לַעֲשׂוֹת?

זה לא אמור לקרות. אם כן, אנא פרסם את הפרטים ברשימת הדיונים של Swish-e
כך שהוא יכול להיות משוחזר על ידי המפתחים.

בינתיים, אתה יכול להשתמש בהנחיית "FileRules" כדי לא לכלול את שם הקובץ המסוים,
או שם נתיב, או הכותרת שלו. אם יש בעיות רציניות באינדקס סוגים מסוימים של
קבצים, ייתכן שאין בהם טקסט חוקי (ייתכן שהם קבצים בינאריים, למשל). אתה
יכול להשתמש ב-NoContents כדי לא לכלול סוג זה של קובץ.

Swish-e תוציא אזהרה אם נמצא תו ריק מוטבע במסמך. זֶה
אזהרה תהיה אינדיקציה לכך שאתה מנסה לאינדקס נתונים בינאריים. אם אתה צריך
אינדקס קבצים בינאריים מנסים למצוא תוכנית שתחלץ את הטקסט (למשל מחרוזות(1),
קטדוק(1), pdftotext(1)).

איך ל I למנוע מפתוח of כמה מסמכים?

כאשר אתה משתמש במערכת הקבצים לאינדקס הקבצים שלך אתה יכול להשתמש בהנחיית "FileRules".
מלבד "כותרת FileRules", "FileRules" עובד רק עם מערכת הקבצים ("-S fs")
שיטת אינדקס, לא עם "-S prog" או "-S http".

אם אתה עכביש באתר שיש לך שליטה עליו, השתמש ב-a robots.txt קובץ במסמך שלך
שורש. זוהי דרך סטנדרטית להחריג קבצים ממנועי חיפוש, והיא מלאה
נתמך על ידי Swish-e. לִרְאוֹת http://www.robotstxt.org/

אם עכביש אתר עם הכלול spider.pl לאחר מכן הוסף את כל הבדיקות הנחוצות
קובץ התצורה של העכביש. סוּג בספריית "prog-bin" עבור
פרטים או עיין בתיעוד העכביש באתר Swish-e. חפש את הסעיף בנושא
פונקציות התקשרות חוזרת.

אם אתה משתמש בספריית libxml2 לניתוח HTML (מה שאתה כנראה), אתה יכול גם להשתמש
אי הכללת Meta Robots במסמכים שלך:



עיין בהנחיית obeyRobotsNoIndex.

איך do I למנוע מפתוח חלקים of a מסמך?

כדי למנוע מ-Swish-e להוסיף לאינדקס כותרת עליונה, כותרת תחתונה או סרגל ניווט משותף, ואתה כן
באמצעות libxml2 לניתוח HTML, אז אתה יכול להשתמש בתג HTML מזויף סביב הטקסט שאתה רוצה
להתעלם ולהשתמש בהנחיית "IgnoreMetaTags". זה ייצור הודעת שגיאה אם
"ParserWarningLevel" מוגדר מכיוון שהוא HTML לא חוקי.

"IgnoreMetaTags" עובד עם מסמכי XML (ומסמכי HTML כאשר משתמשים ב-libxml2 בתור
מנתח), אך לא עם מסמכים שמנתחים על ידי מנתח הטקסט (TXT).

אם אתה משתמש במנתח libxml2 (HTML2 ו-XML2) אז אתה יכול להשתמש בפרטים הבאים
הערות במסמכים שלך כדי למנוע הוספה לאינדקס:




ו/או ניתן להשתמש בהם גם:




איך do I לשנות מה היא נתיב or כתובת האתר of מה היא - מסמכים.

השתמש בהנחיית התצורה "ReplaceRules" כדי לשכתב שמות נתיבים וכתובות URL. אם אתה
באמצעות שיטת הקלט "-S prog" אתה יכול להגדיר את הנתיב לכל מחרוזת.

איך יכול I מדד נתונים החל מ- a מאגר מידע?

השתמש בשיטת המקור של המסמך "פרוג" לאינדקס. כתוב תוכנית לחלץ את
נתונים ממסד הנתונים שלך, ועצב אותו כ-XML, HTML או טקסט. ראה את הדוגמאות ב
ספריית "prog-bin", והשאלה הבאה.

איך do I מדד my PDF, Word, ו דחוס מסמכים?

Swish-e יכול לנתח באופן פנימי רק קובצי HTML, XML ו-TXT (טקסט) כברירת מחדל, אבל יכול ליצור
שימוש מסננים שימירו סוגים אחרים של קבצים כגון מסמכי MS Word, PDF או
קבצים gzipped לאחד מסוגי הקבצים ש-Swish-e מבין.

אנא ראה את SWISH-CONFIG ואת הדוגמאות ב- מסננים ו סל סינון ספרייה למידע נוסף
מידע.

עיין בשאלה הבאה כדי ללמוד על אפשרויות הסינון עם Swish-e.

איך do I לסנן מסמכים?

המונח "מסנן" ב-Swish-e פירושו המרה של מסמך מסוג אחד (אחד ש
swish-e לא יכול לאינדקס ישירות) לסוג ש- Swish-e יכול לאינדקס, כלומר HTML, plain
טקסט, או XML. כדי להוסיף לבלבול, ישנן מספר דרכים להשיג זאת
סוויש-ה. אז הנה קצת רקע.

ההנחיה FileFilter נוספה ל- swish תחילה. תכונה זו מאפשרת לך לציין א
תוכנית להפעלה עבור מסמכים התואמים סיומת קובץ נתונה. למשל, לסנן
קבצי PDF (קבצים המסתיימים ב-.pdf) אתה יכול לציין את הגדרת התצורה של:

FileFilter .pdf pdftotext "'%p' -"

שאומר להפעיל את התוכנית "pdftotext" מעביר לה את שם הנתיב של הקובץ (%p) ו-
מקף (אשר אומר ל-pdftotext לפלט ל-stdout). לאחר מכן עבור כל קובץ .pdf פועל Swish-e
תוכנית זו וקוראת במסמך המסונן מהפלט מתוכנת הסינון.

יש לזה יתרון שקל להגדיר - שורה אחת בקובץ התצורה היא הכל
זה נחוץ כדי להוסיף את המסנן לתוך Swish-e. אבל יש לו גם מספר בעיות. ל
לדוגמה, אם אתה משתמש בסקריפט Perl כדי לבצע את הסינון, זה יכול להיות איטי מאוד מאז
יש להפעיל (ולפיכך להרכיב) סקריפט סינון עבור כל מסמך מעובד. זה
החריף בעת שימוש בשיטת -S http מכיוון ששיטת -S http משתמשת גם בסקריפט Perl
שמופעל עבור כל כתובת אתר שנשלפת. כמו כן, בעת שימוש בשיטת קלט -S prog (קריאה
קלט מתוכנית) באמצעות FileFilter פירושו ש- Swish-e חייב לקרוא תחילה את הקובץ מ-
התוכנית החיצונית ולאחר מכן כתוב את הקובץ לקובץ זמני לפני הפעלת ה
לְסַנֵן.

עם -S prog זה הרבה יותר הגיוני לסנן את המסמך בתוכנה כלומר
להביא את המסמכים מאשר ש- swish-e יקרא את הקובץ לזיכרון, כתוב אותו ל-a
קובץ זמני ולאחר מכן הפעל תוכנית חיצונית.

ההפצה של Swish-e מכילה כמה תוכניות -S prog לדוגמה. spider.pl הוא
עכביש אינטרנט בעל תכונות מלאות באופן סביר שמציע אפשרויות רבות יותר משיטת -S http.
וזה הרבה יותר מהיר מאשר לרוץ גם -S http.

לעכביש יש קובץ תצורה של perl, מה שאומר שאתה יכול להוסיף היגיון תכנות נכון
לתוך קובץ התצורה מבלי לערוך את תוכנית העכביש. זה קצת היגיון
בקובץ התצורה של העכביש מסופקת פונקציית "התקשרות חזרה" המאפשרת לך
לסנן את התוכן. במילים אחרות, לפני שהעכביש מעביר מסמך אינטרנט שנלקח אליו
swish לאינדקס העכביש יכול לקרוא תת-שגרה פשוטה בתצורת העכביש
קובץ המעביר את המסמך וסוג התוכן שלו. תת-השגרה יכולה אז להסתכל על
סוג התוכן והחליט אם יש לסנן את המסמך.

לדוגמה, בעת עיבוד מסמך מסוג "יישום/msword" ההתקשרות חזרה
תת-השגרה עשויה לקרוא למודול doc2txt.pm perl, ולמסמך מסוג "appliation/pdf"
יכול להשתמש במודול pdf2html.pm. ה prog-bin/SwishSpiderConfig.pl הקובץ מראה זאת
שימוש.

מערכת זו פועלת בצורה סבירה, אך גם פירושה שנדרשת יותר עבודה כדי להגדיר את
מסננים. ראשית, עליך לבדוק במפורש סוגי תוכן ספציפיים ולאחר מכן להתקשר ל-
מודול Perl המתאים, ושנית, אתה צריך לדעת איך כל מודול חייב להיקרא ו
כיצד כל אחד מחזיר את התוכן שהשתנה.

נכנס SWISH::Filter.

כדי להקל על העניינים נוצר מודול SWISH::Filter Perl. הרעיון של מודול זה
הוא שיש ממשק אחד המשמש לסינון כל סוגי המסמכים. אז במקום
בדיקת סוגים ספציפיים של תוכן אתה פשוט מעביר את סוג התוכן והמסמך אליו
מודול SWISH::Filter והוא מחזיר סוג תוכן חדש ומסמך אם היה כזה
מְסוּנָן. המסננים שעושים את העבודה בפועל מתוכננים עם ממשק סטנדרטי ו
עובד כמו פילטר "תוספים". הוספת מסננים חדשים פירושה פשוט להוריד את המסנן ל-a
ספרייה ואין צורך בשינויים בקובץ התצורה של העכביש. הורד מסנן
עבור Postscript ובפעם הבאה שתפעיל אינדקס קבצי ה-Postscript שלך יתווספו לאינדקס.

מכיוון שהמסננים הם סטנדרטיים, אני מקווה שכאשר יהיה לך צורך לסנן מסמכים
מסוג מסוים כבר יהיה מסנן מוכן לשימוש שלך.

כעת, שים לב שהמודולים של perl עשויים לבצע את ההמרה בפועל של מסמך או לא.
לדוגמה, מודול המרת PDF קורא לתוכניות pdfinfo ו-pdftotext. הָהֵן
יש להתקין תוכניות (חלק מחבילת Xpfd) בנפרד מהמסננים.

קובץ תצורת העכביש לדוגמה של SwishSpiderConfig.pl מראה כיצד להשתמש ב-
SWISH:: מודול סינון לסינון. קובץ זה מותקן ב
$prefix/share/doc/swish-e/examples/prog-bin, כאשר $prefix הוא בדרך כלל / usr / local על יוניקס-
סוג מכונות.

ניתן להשתמש בשיטת הסינון SWISH::Filter גם בשיטת -S http של
אינדקס. כברירת מחדל ה swishspider תוכנית (סקריפט העזר של Perl שמביא
מסמכים מהאינטרנט) ינסו להשתמש במודול SWISH::Filter אם ניתן למצוא אותו
נתיב ספריית פרלס. נתיב זה מוגדר אוטומטית עבור spider.pl אך לא עבור swishspider
(כי זה יאט שיטה שכבר איטית ומומלץ להשתמש ב-spider.pl
שיטת -S http).

לכן, כל מה שנדרש כדי להשתמש במערכת זו עם -S http הוא הגדרת מערך @INC
כדי להצביע על ספריית המסנן.

לדוגמה, אם הפצת swish-e פורקה לתוך ~/סוויש-ה:

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

יאפשר לשיטת -S http לעשות שימוש במודול SWISH::Filter.

שים לב שאם אינך משתמש במודול SWISH::Filter, ייתכן שתרצה לערוך את
swishspider תוכנית והשבת את השימוש במודול SWISH::Filter באמצעות הגדרה זו:

השתמש בקבוע USE_FILTERS => 0; # השבת את SWISH::Filter

זה מונע מהתוכנית לנסות להשתמש במודול SWISH::Filter עבור כל לא-
כתובת טקסט שנשלפת. כמובן, אם אתה מודאג ממהירות האינדקס אתה צריך
השתמש בשיטת -S prog עם spider.pl במקום -S http.

אם אתה לא עכביש, אבל אתה עדיין רוצה לעשות שימוש במודול SWISH::Filter עבור
סינון אתה יכול להשתמש בתוכנית DirTree.pl (ב-$prefix/lib/swish-e). זה פשוט
תוכנית שחוצה את מערכת הקבצים ומשתמשת ב-SWISH::Filter לסינון.

הנה שתי דוגמאות כיצד להפעיל תוכנית סינון, אחת באמצעות "FileFilter" של Swish-e
הוראה, אחרת משתמשת בתוכנית שיטת קלט "פרוג". ראה את SwishSpiderConfig.pl פילה
לדוגמא לשימוש במודול SWISH::Filter.

מסננים אלה פשוט משתמשים בתוכנית "/bin/cat" כמסנן ומוסיף רק קבצי HTML.

ראשית, באמצעות שיטת "FileFilter", הנה כל קובץ התצורה (swish.conf):

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

והוסף עם הפקודה

swish-e -c swish.conf -v 1

עכשיו, אותו דבר עם שימוש בשיטת הקלט של מקור המסמך "-S prog" ו-Perl
תוכנית בשם catfilter.pl. אתה יכול לראות שזה הרבה יותר עבודה מאשר להשתמש ב
שיטת "FileFilter" למעלה, אך מספקת מקום לבצע עיבוד נוסף. בזה
לדוגמה, שיטת ה"פרוג" מהירה רק מעט יותר. אבל אם אתה צריך סקריפט perl כדי
הפעל בתור FileFilter ואז ה-"prog" יהיה מהיר יותר באופן משמעותי.

#!/usr/local/bin/perl -w
השתמש מחמירים;
השתמש בקובץ::find; # עבור עץ ספריות חוזר

$/ = undef;
למצוא(
{ wanted => \&wanted, no_chdir => 1, },
'.',
);

משנה מבוקש {
החזר אם -ד;
החזר אלא אם כן /\.html$/;

my $mtime = (stat)[9];

my $child = open( FH, '-⎪' );
למות "נכשל בחלוקת $!" אלא אם הוגדר $child;
exec '/bin/cat', $_ אלא אם כן $child;

ה-$content שלי = ;
my $size = אורך $content;

הדפס <
אורך תוכן: גודל $
Last-Mtime: $mtime
שם נתיב: $_

EOF

הדפס ;
}

ואינדקס עם הפקודה:

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

דוגמה זו כנראה לא תעבוד תחת Windows עקב הפתיחה של '-⎪'. צינור פשוט
פתוח עשוי לעבוד באותה מידה:

כלומר, להחליף:

my $child = open( FH, '-⎪' );
למות "נכשל בחלוקת $!" אלא אם הוגדר $child;
exec '/bin/cat', $_ אלא אם כן $child;

עם זה:

open( FH, "/bin/cat $_ ⎪" ) או למות $!;

Perl תנסה להימנע מהפעלת הפקודה דרך המעטפת אם אין תווים מטא
עבר לשטח הפתוח. ראה "perldoc -f פתוח" למידע נוסף.

היי, אבל I רק רוצה ל לדעת אֵיך ל מדד PDF מסמכים!

ראה את הדוגמאות בסעיף conf הספרייה וההערות ב- SwishSpiderConfig.pl קובץ.

עיין בשאלה הקודמת לפרטים על סינון. השיטה שבה תחליט להשתמש תהיה
תלוי כמה מהר אתה רוצה לאינדקס, וברמת הנוחות שלך עם השימוש במודולי Perl.

ללא קשר לשיטת הסינון בה אתה משתמש, תצטרך להתקין את חבילות ה-Xpdf
זמין מ http://www.foolabs.com/xpdf/.

אני באמצעות Windows ו לא יכול לקבל מסנן or מה היא פרוג קלט שיטה ל לעבוד!

גם שיטת הקלט "-S prog" וגם המסננים משתמשים בקריאה למערכת "popen()" כדי להפעיל את
תוכנית חיצונית. אם התוכנית החיצונית שלך היא, למשל, סקריפט perl, אתה חייב
תגיד ל- Swish-e להפעיל את perl, במקום את הסקריפט. Swish-e ימיר לוכסנים קדימה ל
נטוי לאחור בעת הפעלה תחת Windows.

לדוגמה, תצטרך לציין את הנתיב ל-perl בתור (בהנחה שזה המקום שבו Perl נמצא
במערכת שלך):

IndexDir e:/perl/bin/perl.exe

או להפעיל מסנן כמו:

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

לרוב קל יותר להתקין את לינוקס.

איך do I מדד לא אנגלית מילים?

Swish-e אינדקס תווים של 8 סיביות בלבד. זוהי ערכת התווים ISO 8859-1 Latin-1, ו
כולל הרבה אותיות (וסמלים) שאינם אנגלים. כל עוד הם רשומים ב
"תווים מילים" הם יתווספו לאינדקס.

למעשה, אתה כנראה יכול לאינדקס כל סט תווים של 8 סיביות, כל עוד אתה לא מערבב
ערכות תווים באותו אינדקס ואל תשתמש ב-libxml2 לניתוח (ראה להלן).

ההנחיה "תרגום תווים" (SWISH-CONFIG) יכולה לתרגם תווים תוך כדי אינדקס
ומחפשים. אתה יכול לציין מיפוי של דמות אחת לדמות אחרת עם ה
הנחיית "תרגם תווים".

"TranslateCharacters :ascii7:" הוא קבוצה מוגדרת מראש של תווים שיתורגמו
תווים שמונה סיביות עד תווים ascii7. שימוש בכלל ":ascii7:" יאפשר, למשל,
לתרגם את "Ääç" ל"aac". משמעות הדבר היא: חיפוש "Çelik", "çelik" או "celik" יעשה הכל
להתאים לאותה מילה.

הערה: בעת שימוש ב-libxml2 לניתוח, מסמכים מנותחים מומרים באופן פנימי (בתוך
libxml2) ל-UTF-8. זה מומר ל-ISO 8859-1 Latin-1 בעת יצירת אינדקס. במקרים שבהם
לא ניתן להמיר מחרוזת מ-UTF-8 ל-ISO 8859-1 (מכיוון שהיא מכילה לא 8859-1
תווים), המחרוזת תישלח אל Swish-e בקידוד UTF-8. זה יביא לתוצאה
כמה מילים מסומנות בצורה שגויה. הגדרה של "ParserWarningLevel" ל-1 או יותר תוצג
אזהרות כאשר המרת UTF-8 ל-8859-1 נכשלת.

פחית I הוסף הסר קבצים החל מ- an אינדקס?

נסה לבנות את swish-e עם האפשרות "--enable-incremental".

שאר השאלות הנפוצות הללו חלות על פורמט ברירת המחדל של swish-e.

ל- Swish-e אין כרגע דרך להוסיף או להסיר פריטים מהאינדקס שלה. אבל, אינדקסים של Swish-e
כל כך מהר שלעתים קרובות ניתן להוסיף מחדש את כל ערכת המסמכים כאשר צריך קובץ
להוספה, שינוי או הסרה. אם אתה עכביש באתר מרוחק אז שקול
אחסון מסמכים דחוסים מקומית.

ניתן לטפל בתוספות מצטברות בכמה דרכים, בהתאם למצב שלך.
כנראה שהכי קל ליצור אינדקס ראשי אחד בכל לילה (או כל שבוע), ואז
צור אינדקס של הקבצים החדשים בלבד בין עבודות האינדקס הראשיות והשתמש באפשרות "-f".
להעביר את שני האינדקסים ל-Swish-e תוך כדי חיפוש.

אפשר למזג את האינדקסים לאינדקס אחד (במקום להשתמש ב-f), אבל זה לא ברור
יש לזה יתרון על פני חיפוש באינדקסים מרובים.

איך יוצרים את האינדקס המצטבר?

שיטה אחת היא באמצעות מתג "-N" כדי להעביר נתיב קובץ ל-Swish-e בעת יצירת אינדקס. זה
יוסיף רק קבצים עם תאריך השינוי האחרון "חדש" מהקובץ שסופק
עם המתג "-N".

לאפשרות זו יש את החיסרון ש- Swish-e חייבת לעבד כל קובץ בכל ספרייה
כאילו הם עומדים להיות מודפסים (המבחן עבור "-N" נעשה אחרון ממש לפני האינדקס
של תוכן הקובץ מתחילים ואחרי שכל שאר הבדיקות בקובץ הושלמו) --
כל זה רק כדי למצוא כמה קבצים חדשים.

כמו כן, אם אתה משתמש בקובץ האינדקס של Swish-e בתור הקובץ המועבר ל-"-N" עשויים להיות קבצים ש
נוספו לאחר תחילת האינדקס, אך לפני כתיבת קובץ האינדקס. זה יכול
גורם לכך שקובץ לא יתווסף לאינדקס.

אפשרות נוספת היא לשמור על עץ ספריות מקביל המכיל קישורים סימליים המצביעים אליו
הקבצים הראשיים. כאשר קובץ חדש נוסף (או משתנה) לעץ הספריות הראשי אתה
צור קישור סימול לקובץ האמיתי בעץ הספריות המקבילות. לאחר מכן פשוט אינדקס את
ספריית symlink ליצירת האינדקס המצטבר.

לאפשרות זו יש את החיסרון שאתה צריך שתהיה לך תוכנית מרכזית שיוצרת את
קבצים חדשים שיכולים גם ליצור את הקישורים הסמליים. אבל, האינדקס הוא די מהיר מאז Swish-e
צריך רק להסתכל על הקבצים שצריך להוסיף לאינדקס. כאשר אתה מפעיל אינדקס מלא אותך
פשוט בטל את הקישור (מחק) את כל הקישורים הסמליים.

לשתי השיטות הללו יש בעיות שבהן קבצים עלולים להגיע בשני האינדקסים או להיות קבצים
נותר מחוץ לאינדקס. שימוש בנעילות קבצים בזמן אינדקס, וחיפושי hash במהלך חיפושים
יכול לסייע במניעת בעיות אלו.

I לָרוּץ הַחוּצָה of זיכרון מנסה ל מדד my קבצים.

זה נכון שהאינדקס יכול לתפוס הרבה זיכרון! Swish-e מהיר במיוחד
אינדקס, אבל זה בא במחיר של זיכרון.

התשובה הטובה ביותר היא להתקין יותר זיכרון.

אפשרות נוספת היא להשתמש במתג "-e". זה ידרוש פחות זיכרון, אבל אינדקס ידרוש
ייקח זמן רב יותר מכיוון שלא כל הנתונים יאוחסנו בזיכרון בזמן האינדקס. כמה פחות זיכרון
וכמה זמן נוסף תלוי במסמכים שאתה מוסיף לאינדקס, ובחומרה
אתה משתמש.

הנה דוגמה לאינדקס של כל קבצי ה-html ב-/usr/doc בלינוקס. הדוגמה הראשונה הזו היא
לְלֹא "-e" והשתמש בכ-84M זיכרון:

270279 מילים ייחודיות אינדקס.
23841 קבצים נוספו לאינדקס. 177640166 בייטים סה"כ.
זמן שחלף: 00:04:45 זמן מעבד: 00:03:19

זהו עם "-e", ובשימוש בערך 26M או זיכרון:

270279 מילים ייחודיות אינדקס.
23841 קבצים נוספו לאינדקס. 177640166 בייטים סה"כ.
זמן שחלף: 00:06:43 זמן מעבד: 00:04:12

ניתן גם לבנות מספר אינדקסים קטנים יותר ולאחר מכן למזג יחד עם "-M". באמצעות
"-e" בזמן המיזוג יחסוך זיכרון.

לבסוף, אם תבנה מספר אינדקסים קטנים יותר, תוכל לציין יותר מאינדקס אחד
בעת חיפוש באמצעות מתג "-f". מיון ערכות תוצאות גדולות לפי מאפיין יהיה
איטי יותר בעת ציון קובצי אינדקס מרובים בזמן חיפוש.

"גַם רב לפתוח קבצים" מתי מפתוח עם -e אוֹפְּצִיָה

חלק מהפלטפורמות מדווחות על "יותר מדי קבצים פתוחים" בעת שימוש באפשרות הכלכלה -e. ה-e
תכונה משתמשת בקבצים זמניים רבים (משהו כמו 377) בתוספת קבצי האינדקס וזה עשוי
לחרוג ממגבלות המערכת שלך.

בהתאם לפלטפורמה שלך ייתכן שתצטרך להגדיר "ulimit" או "unlimit".

לדוגמה, תחת מעטפת bash Linux:

$ ulimit -n 1024

או מתחת לספארק ישן

% קבצים פתוחים ללא הגבלה

My מערכת מנהל אומר סוויש-ה שימושים גַם הרבה of מה היא מעבד!

זה דבר טוב! המעבד היקר הזה אמור להיות תפוס.

יצירת אינדקס דורשת עבודה רבה -- כדי להפוך את האינדקס למהיר, חלק גדול מהעבודה נעשה בזיכרון
מה שמפחית את משך הזמן של Swish-e ממתין ב-I/O. אבל, יש שני דברים שאתה
יכול לנסות:

האפשרות "-e" תפעיל את Swish-e במצב חסכוני, המשתמש בדיסק לאחסון נתונים תוך כדי
אינדקס. זה גורם ל-Swish-e לרוץ לאט יותר, אך גם משתמש בפחות זיכרון. מאחר שזה
כתיבה לדיסק בתדירות גבוהה יותר זה יבלה יותר זמן בהמתנה ב-I/O ופחות זמן ב-I/O
מעבד. אולי.

הדבר השני הוא פשוט להוריד את העדיפות של העבודה באמצעות נחמד(1) פקודה:

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

אם אתה מודאג לגבי זמן חיפוש, ודא שאתה משתמש במתגים -b ו-m בלבד
להחזיר דף בכל פעם. אם אתה יודע שקבוצות התוצאות שלך יהיו גדולות, ושאתה
רוצה להחזיר תוצאות עמוד אחד בכל פעם, ולעיתים קרובות פעמים רבות של עמודים זהים
השאילתה תתבקש, ייתכן שתהיה חכם לבקש את כל המסמכים בראשון
בקשה, ולאחר מכן שמור את התוצאות בקובץ זמני. מודול perl File::Cache
עושה את זה מאוד פשוט לביצוע.

עכבישים

איך יכול I מדד מסמכים on a אינטרנט שרת?

אם אפשר, השתמש בשיטת מערכת הקבצים "-S fs" של יצירת אינדקס לאינדקס מסמכים באינטרנט שלך
אזור של מערכת הקבצים. זה מונע את התקורה של עכביש שרת אינטרנט וזה הרבה
מהיר יותר. ("-S fs" היא שיטת ברירת המחדל אם "-S" לא צוין).

אם זה בלתי אפשרי (שרת האינטרנט אינו מקומי, או שהמסמכים הם דינמיים
נוצר), Swish-e מספק שתי שיטות של עכביש. ראשית, הוא כולל את שיטת http
של אינדקס "-S http". זמינות מספר הנחיות תצורה מיוחדות
לשלוט ב-spidering (ראה "הנחיות לשיטת הגישה ל-HTTP בלבד" ב-SWISH-CONFIG). א
סקריפט עוזר perl (swishspider) כלול ב- src ספרייה כדי לסייע עם עכבישים
שרתי אינטרנט. ישנן תצורות לדוגמה עבור עכביש ב- conf במדריך.

החל מ- Swish-e 2.2, קיים מקור מסמך "פרוג" למטרות כלליות שבו תוכנית יכולה
הזינו אליו מסמכים לצורך הוספה לאינדקס. ניתן למצוא מספר תוכניות לדוגמה ב-
ספריית "prog-bin", כולל תוכנית לשרת שרתי אינטרנט. ה-spider.pl שסופק
התוכנית כוללת תכונות מלאות וניתנת להתאמה אישית בקלות.

היתרון של תכונת מקור המסמך "פרוג" על פני שיטת "http" הוא שה-
התוכנית מופעלת רק פעם אחת, כאשר התוכנית swishspider.pl בשימוש ב-"http"
השיטה מופעלת פעם אחת עבור כל מסמך שנקרא משרת האינטרנט. ההתפצלות של
Swish-e והידור של סקריפט perl יכולים להיות די יקרים מבחינת זמן.

היתרון הנוסף של תוכנית "spider.pl" הוא שהיא פשוטה ויעילה להוספה
סינון (כגון עבור PDF או MS Word docs) ישירות לתוך התצורה של spider.pl, ו
הוא כולל תכונות כגון בדיקות MD5 למניעת הוספה לאינדקס כפול, אפשרויות שיש להימנע מהן
עכביש כמה קבצים, או אינדקס אבל הימנע עכביש. ומכיוון שזו תוכנית פרל יש
ללא הגבלה על התכונות שאתה יכול להוסיף.

למה עושה לְהַצְלִיף לדווח "./swishspider: לֹא מצאתי"?

האם הקובץ swishspider קיים במקום בו מוצגת הודעת השגיאה? אם לא, או להגדיר את
אפשרות תצורה SpiderDirectory כדי להצביע על הספרייה שבה swishspider
נמצאה התוכנית, או מקם את swishspider תוכנית בספרייה הנוכחית בעת הפעלה
סוויש-ה.

אם אתה מריץ את Windows, ודא ש"perl" נמצא בנתיב שלך. נסה להקליד פרל מ
שורת פקודה.

אם אתה לא מפעיל חלונות, ודא שקו shebang (השורה הראשונה של
תוכנית swishspider שמתחילה ב-#!) מצביעה על המיקום הנכון של perl.
בדרך כלל זה יהיה /usr/bin/perl or /usr/local/bin/perl. כמו כן, ודא שאתה
יש לך הרשאות הפעלה וקריאה swishspider.

אל האני swishspider סקריפט perl משמש רק עם שיטת -S http לאינדקס.

אני באמצעות מה היא spider.pl התוכנית ל עכביש my אינטרנט אתר, אבל כמה גָדוֹל קבצים יש לו לֹא
באינדקס.

לתוכנית "spider.pl" יש מגבלת ברירת מחדל של גודל קובץ של 5MB. זה יכול להשתנות עם
הגדרת הפרמטר "max_size". ראה "perldoc spider.pl" למידע נוסף.

I עוד לא לחשוב את כל my אינטרנט דפים יש לו להיות באינדקס.

אל האני spider.pl לתוכנית יש מספר מתגי ניפוי באגים ויכולה להיות די מילולית
לספר לך מה קורה ולמה. ראה "perldoc spider.pl" להוראות.

סוויש is לֹא עכביש Javascript קישורים!

Swish לא יכול לעקוב אחר קישורים שנוצרו על ידי Javascript, מכיוון שהם נוצרים על ידי הדפדפן
ואינם חלק מהמסמך.

איך do I עכביש אַחֵר אתרים ו לשלב it עם my שֶׁלוֹ (מערכת קבצים) אינדקס?

אתה יכול למזג "-M" שני אינדקסים לאינדקס יחיד, או להשתמש ב-"-f" כדי לציין יותר
מאשר אינדקס אחד בזמן החיפוש.

יהיו לך תוצאות טובות יותר בשיטת "-f".

חיפוש

איך do I להגביל חיפושים ל רק חלקים of מה היא אינדקס?

אם אתה יכול לזהות "חלקים" מהאינדקס שלך לפי שם הנתיב יש לך שתי אפשרויות.

האפשרויות הראשונות הן על ידי הוספת נתיב המסמך לאינדקס. הוסף את זה לתצורה שלך:

MetaNames swishdocpath

כעת אתה יכול לחפש מילים או ביטויים בשם הנתיב:

swish-e -w 'foo AND swishdocpath=(מכירות)'

אז זה ימצא רק מסמכים עם המילה "foo" ואיפה הנתיב של הקובץ מכיל
"מכירות". עם זאת, ייתכן שזה לא יעבוד כמו שאתה רוצה, כפי ששני הנתיבים הללו יפעלו
התאמה:

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

ניתן לפתור זאת על ידי חיפוש עם ביטוי (בהנחה ש-"/" אינו תו Word):

swish-e -w 'foo AND swishdocpath=("/web/sales/")'
swish-e -w 'foo AND swishdocpath=("מכירות באינטרנט")' (אותו דבר)

האפשרות השנייה היא קצת יותר חזקה. עם ההנחיה "ExtractPath" אתה יכול להשתמש ב-a
ביטוי רגולרי כדי לחלץ תת-קבוצה של הנתיב ולשמור אותו כמטא נפרד
שֵׁם:

מחלקת MetaNames
ExtractPath המחלקה הרגולרית !^/web/([^/]+).+$!$1/

מה שאומר להתאים נתיב שמתחיל ב-"/web/" ולחלץ הכל אחרי זה למעלה
to, אך לא כולל את ה-"/" הבא ושמור אותו במשתנה $1, ולאחר מכן התאם הכל
מה-"/" ואילך. לאחר מכן החלף את כל מחרוזת הגפרורים ב-$1. וזה מקבל
באינדקס כשם מטא "מחלקה".

עכשיו אתה יכול לחפש כמו:

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

והקפד שתתאים רק למסמכים בנתיב /www/sales/*. ציין זאת
אתה יכול למפות אזורים שונים לחלוטין של מערכת הקבצים שלך לאותו מטא שם:

# סמן את הדפים הספציפיים לשיווק
ExtractPath regex !^/web/(שיווק⎪מכירות)/.+$!marketing/
ExtractPath המחלקה הרגולרית !^/internal/marketing/.+$!marketing/

# סמן את דפי המחלקות הטכניות
ExtractPath המחלקה הרגולרית !^/web/(tech⎪bugs)/.+$!tech/

לבסוף, אם יש לך משהו יותר מסובך, השתמש ב-"-S prog" וכתוב תוכנית perl או
השתמש במסנן כדי להגדיר מטא תג בעת עיבוד כל קובץ.

איך is הדירוג מְחוֹשָׁב?

ערך המאפיין "swishrank" מחושב על סמך איזו תכנית דירוג (או אלגוריתם)
אתה בחרת. בדיון הזה, בכל עת המילה אשליה נמצא בשימוש, כדאי להתייעץ
הקוד בפועל לפרטים נוספים. זה קוד פתוח, אחרי הכל.

דברים שאתה יכול לעשות כדי להשפיע על הדירוג:

MetaNamesRank
אתה יכול להגדיר את האינדקס שלך להטות ערכי מטא-שמות מסוימים יותר או פחות מאחרים.
ראה את אפשרות התצורה "MetaNamesRank" ב-SWISH-CONFIG.

התעלם מספירת מילים הכוללת בעת דירוג
הגדר ל-1 (ברירת מחדל) או 0 בקובץ התצורה שלך. ראה SWISH-CONFIG. הערה: אתה חייב להגדיר
זה ל-0 כדי להשתמש בתכנית הדירוג של צה"ל.

מִבְנֶה
מיקומו של כל מונח בכל מסמך HTML מקבל ערך מבנה המבוסס על
ההקשר שבו מופיעה המילה. ערך המבנה משמש לניפוח מלאכותי
התדירות של כל מונח במסמך הספציפי הזה. ערכים מבניים אלו הם
מוגדר ב config.h:

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

לדוגמה, אם המילה "foo" מופיעה בכותרת של מסמך, התוכנית תעשה זאת
התייחס למסמך הזה כאילו "פו" הופיע 7 פעמים נוספות.

כל הסכמות חולקות את המאפיינים הבאים:

וחיפושים
ערך הדירוג הוא ממוצע עבור כל המונחים AND'd. מונחים בתוך קבוצה של סוגריים ()
ממוצעים כמונח בודד (זו חולשה מוכרת והיא על ה-TODO
רשימה).

OR חיפושים
ערך הדירוג מסוכם ואז מוכפל עבור כל זוג איברים של OR. זו התוצאה
דרגות גבוהות יותר עבור מסמכים שיש להם מונחי OR מרובים.

דרגה מוקטנת
לאחר חישוב ציון הדירוג הגולמי של מסמך, מחושב ציון דירוג סופי
באמצעות פונקציית "log()" מפוארת. לאחר מכן, כל המסמכים מותאמים לפי ציון בסיס
של 1000. לכן, למסמך המדורג העליון תמיד יהיה ערך "swishrank" של
1000.

להלן סקירה קצרה של אופן פעולת הסכמות השונות. המספר בסוגריים
אחרי השם מופיע הערך להפעלת סכימה זו עם "swish-e -R" או "RankScheme()".

ברירת מחדל (0)
ערכת דירוג ברירת המחדל מתייחסת למספר הפעמים שמונח מופיע במסמך
(תדירות), MetaNamesRank וערך המבנה. ניתן לסכם את הדירוג
כמו:

DocRank = סכום של (מבנה + מטאביות)

שקול את הפלט הזה עם המשתנה DEBUG_RANK שהוגדר בזמן ההידור:

תכנית דירוג: 0
להזנת מילה 0 בעמדה 6 יש מבנה 7
להזנת מילה 1 בעמדה 64 יש מבנה 41
להזנת מילה 2 בעמדה 71 יש מבנה 9
להזנת מילה 3 בעמדה 132 יש מבנה 9
להזנת מילה 4 בעמדה 154 יש מבנה 9
להזנת מילה 5 בעמדה 423 יש מבנה 73
להזנת מילה 6 בעמדה 541 יש מבנה 73
להזנת מילה 7 בעמדה 662 יש מבנה 73
מספר קובץ: 1104. דרגה גולמית: 21. תדירות: 8 דרגה בקנה מידה: 30445
סיכום מבנה:
struct 0x7 = ספירה של 1 ( HEAD TITLE FILE ) x מפת דירוג של 8 = 8

struct 0x9 = ספירה של 3 ( BODY FILE ) x מפת דירוג של 1 = 3

struct 0x29 = ספירה של 1 ( HEADING BODY FILE ) x מפת דירוג של 6 = 6

struct 0x49 = ספירה של 3 ( EM BODY FILE ) x מפת דירוג של 1 = 3

כל מופע של מילה מתחיל עם ציון בסיס של 1. לאחר מכן עבור כל מופע שלך
מילה, נלקח סכום שוטף של הערך המבני של מיקום המילה בתוספת כל
הטיה שהגדרת. בדוגמה למעלה, הדירוג הגולמי הוא "1 + 8 + 3 + 6 + 3 =
21 ".

שקול את השורה הזו:

struct 0x7 = ספירה של 1 ( HEAD TITLE FILE ) x מפת דירוג של 8 = 8

זה אומר שהיה מופע אחד של המילה שלנו בכותרת הקובץ. זה ההקשר
היה ב ערכת תגים, בתוך . ה<title> הוא הספציפי ביותר
מבנה, כך שהוא מקבל את הציון RANK_TITLE: 7. דירוג הבסיס של 1 בתוספת המבנה
ציון של 7 שווה 8. אם היו שני מקרים של מילה זו בכותרת, אז
הציון היה "8 + 8 = 16".

צה"ל (1)
IDF הוא קיצור של Inverse Document Frequency. זה לינגו דירוג מפואר לביצוע
לקחת בחשבון את התדירות הכוללת של מונח על פני כל המדד, בנוסף ל
תדירות המונח במסמך אחד. דירוג צה"ל משתמש גם בצפיפות היחסית של א
מילה במסמך כדי לשפוט את הרלוונטיות שלה. מילים המופיעות לעתים קרובות יותר במסמך מייצרות
הדרגה של מסמך זה גבוה יותר, ומסמכים ארוכים יותר אינם משוקללים גבוה יותר ממסמכים קצרים יותר.

ניתן לסכם את תכנית צה"ל כך:

DocRank = סכום של ( צפיפות * idf * ( מבנה + מטאביה ) )

שקול את הפלט הזה מ-DEBUG_RANK:

תכנית דירוג: 1
מספר קובץ: 1104 ציון מילים: 1 תדירות: 8 סך קבצים: 1451
תדירות מילים כוללת: 108 צה"ל: 2564
סך המילים: 1145877 מילים שצורפו לאינדקס במסמך זה: 562
מילים ממוצעות: 789 צפיפות: 1120 משקל מילים: 28716
להזנת מילה 0 בעמדה 6 יש מבנה 7
להזנת מילה 1 בעמדה 64 יש מבנה 41
להזנת מילה 2 בעמדה 71 יש מבנה 9
להזנת מילה 3 בעמדה 132 יש מבנה 9
להזנת מילה 4 בעמדה 154 יש מבנה 9
להזנת מילה 5 בעמדה 423 יש מבנה 73
להזנת מילה 6 בעמדה 541 יש מבנה 73
להזנת מילה 7 בעמדה 662 יש מבנה 73
דרגה לאחר שקלול צה"ל: 574321
דירוג מדורג: 132609
סיכום מבנה:
struct 0x7 = ספירה של 1 ( HEAD TITLE FILE ) x מפת דירוג של 8 = 8

struct 0x9 = ספירה של 3 ( BODY FILE ) x מפת דירוג של 1 = 3

struct 0x29 = ספירה של 1 ( HEADING BODY FILE ) x מפת דירוג של 6 = 6

struct 0x49 = ספירה של 3 ( EM BODY FILE ) x מפת דירוג של 1 = 3

זה דומה לתוכנית ברירת המחדל, אך שימו לב כיצד המספר הכולל של קבצים ב-
אינדקס ותדירות המילה הכוללת (בניגוד לתדירות המסמך) שניהם
חלק מהמשוואה.

דירוג הוא נושא מסובך. SWISH-E מאפשר לפתח סכימות דירוג נוספות
והתנסו עם האפשרות -R (מהפקודה swish-e) ו-RankScheme
(ראה תיעוד API). נסה ושתף את הממצאים שלך דרך רשימת הדיונים.

איך יכול I להגביל חיפושים ל מה היא כותרת, גוף, or איך? 'או' מה?

השתמש במתג "-t".

I לא יכול להגביל חיפושים ל כותרת/גוף/תגובה.

או, I לא יכול search עם מטא שמות, את כל מה היא שמות יש לו - as "מישור".

בדוק בקובץ config.h אם #define INDEXTAGS מוגדר ל-1. אם כן, שנה אותו ל-0,
הידור מחדש, והוסף שוב לאינדקס. כאשר INDEXTAGS הוא 1, כל התגים מתווספים כטקסט רגיל,
כלומר אתה מוסיף "כותרת", "h1", וכן הלאה, והם מאבדים את משמעות האינדקס שלהם. אם
INDEXTAGS מוגדר ל-0, עדיין תוסיף לאינדקס מטא תגים והערות, אלא אם כן יש לך
צוין אחרת בקובץ התצורה של המשתמש עם הנחיית IndexComments.

כמו כן, בדוק את ההגדרה "UndefinedMetaTags" בקובץ התצורה שלך.

אני כבר ניסיתי ריצה מה היא כלול CGI תסריט ו I לקבל a "פְּנִימִי שרת שְׁגִיאָה"

איתור באגים של סקריפטים של CGI הם מעבר לתחום של מסמך זה. שגיאת שרת פנימית
פירושו בעצם "בדוק את היומן של שרת האינטרנט אם יש הודעת שגיאה", מכיוון שזה יכול להיות רע
שורת shebang (#!), מודול perl חסר, שגיאת העברת FTP, או פשוט שגיאה ב-
תכנית. סקריפט CGI swish.cgi ב דוגמה הספרייה מכילה איתור באגים
הצעות. הקלד "perldoc swish.cgi" לקבלת מידע.

יש גם הרבה מאוד שאלות נפוצות של CGI זמינות באינטרנט. חיפוש מהיר באינטרנט צריך
להציע עזרה. כמוצא אחרון, תוכל לבקש עזרה ממנהל האינטרנט שלך...

מתי I לנסות ל נוף מה היא swish.cgi עמוד I לִרְאוֹת מה היא תוכן of מה היא פרל תכנית.

שרת האינטרנט שלך אינו מוגדר להריץ את התוכנית כסקריפט CGI. הבעיה הזו היא
מתואר ב-perldoc swish.cgi.

איך do I לעשות סוויש-ה להבליט מילים in search תוצאות?

תשובה קצרה:

השתמש בסקריפטים של swish.cgi או search.cgi המסופקים ב- דוגמה במדריך.

תשובה ארוכה:

Swish-e לא יכול כי אין לו גישה למסמכי המקור בעת החזרה
תוצאות, כמובן. אבל תוכנית חזיתית של היצירה שלך יכולה להדגיש מונחים. שֶׁלְךָ
התוכנית יכולה לפתוח את מסמכי המקור ולאחר מכן להשתמש בביטויים רגולריים כדי להחליף
מונחי חיפוש עם מילים מודגשות או מודגשות.

אבל, זה ייכשל עם כל מסמכי המקור הפשוטים ביותר. עבור מסמכי HTML,
לדוגמה, עליך לנתח את המסמך למילים ותגיות (והערות). מילה אתה
הרצון להדגיש עשוי להשתרע על תגי HTML מרובים, או להיות מילה בכתובת אתר וברצונך לעשות זאת
הדגש את כל טקסט הקישור.

מודולי Perl כגון HTML::Parser ו-XML::Parser מאפשרים מיצוי מילים. הַבָּא,
עליך לקחת בחשבון ש-Swish-e משתמש בהגדרות כגון WordCharacters, BeginCharacters,
EndCharacters, IgnoreFirstChar ו-IgnoreLast, תווים כדי להגדיר "מילה". זה אתה
לא יכול לחשוב שמחרוזת תווים עם רווח לבן בכל צד היא מילה.

אז דברים כמו TranslateCharacters ו-HTML Entities עשויים להפוך מילת מקור ל
משהו אחר, מבחינת Swish-e. לבסוף, ניתן להגביל את החיפושים על ידי
metanames, אז ייתכן שתצטרך להגביל את ההדגשה שלך רק לחלקים מהמקור
מסמך. זרקו חיפושי ביטוי ומילות עצור לתוך המשוואה ותוכלו לראות שכן
לא בעיה טריוויאלית לפתור.

כל תקווה לא אבדה, חשב, שכן Swish-e אכן מספק עזרה. שימוש באפשרות "-H".
זה יחזיר בכותרות את הגדרות האינדקס (או האינדקסים) הנוכחיות עבור WordCharacters
(ואחרים) נדרשים לנתח את מסמכי המקור שלך בזמן שהוא מנתח אותם במהלך האינדקס,
ויחזיר כותרת "Parsed Words:" שתראה כיצד ניתח את השאילתה
כְּלַפֵּי פְּנִים. אם אתה משתמש באינדקס מטושטש (התבטאות מילים, סאונדקס או מטאפון), אז אתה
תצטרך גם להגדיר כל מילה במסמך שלך לפני ההשוואה עם ה-"Parsed
מילים:" הוחזר על ידי Swish-e.

קוד המקור של Swish-e זמין באמצעות מודול Swish-e Perl
(SWISH::API) או ספריית C (כלולה בהפצת swish-e), או באמצעות
SWISH:: מודול Stemmer זמין ב-CPAN. גם ב-CPAN נמצא המודול
טקסט::DoubleMetaphone. השימוש ב-SWISH::API מספק כנראה את התמיכה הטובה ביותר במקור.

Do מסננים השפעה מה היא ביצועים בְּמַהֲלָך לחפש?

מסננים (FileFilter או באמצעות שיטת "פרוג") משמשים רק לבניית אינדקס החיפוש
מאגר מידע. במהלך בקשות החיפוש לא יהיו שיחות סינון.

I יש לקרוא מה היא שאלות נפוצות אבל I עוד יש שאלות על באמצעות סוויש-ה.

רשימת הדיונים של Swish-e היא המקום ללכת אליו. http://swish-e.org/. נא לא לשלוח מייל
מפתחים ישירות. הרשימה היא המקום הטוב ביותר לשאול שאלות.

לפני שאתה מפרסם בבקשה קרא שאלות ו פתרון תקלות ממוקם בדף ההתקנה.
כדאי גם לחפש בארכיון רשימת הדיונים של Swish-e שניתן למצוא ב-
אתר swish-e.

בקיצור, הקפד לכלול את הדברים הבאים כשאתה מבקש עזרה.

* גרסת swish-e (./swish-e -V)
* מה אתה מוסיף לאינדקס (ואולי דוגמה), ומספר הקבצים
* קובץ התצורה של Swish-e שלך
* הודעות שגיאה כלשהן ש-Swish-e מדווחת

מסמך מידע


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

.

השתמש ב-SWISH-FAQ מקוון באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

  • 1
    ניקוי עמוק
    ניקוי עמוק
    תסריט קוטלין שכולו בנוי גרעינים
    מטמונים מפרויקטים של Gradle/Android.
    שימושי כאשר Gradle או ה-IDE מאפשרים לך
    מטה. התסריט נבדק על
    macOS, אבל...
    הורד ניקוי עמוק
  • 2
    Eclipse Checkstyle Plug-in
    Eclipse Checkstyle Plug-in
    הפלאגין Eclipse Checkstyle
    משלב את קוד ה-Java Checkstyle
    אודיטור לתוך Eclipse IDE. ה
    תוסף מספק משוב בזמן אמת ל
    המשתמש על הפרה...
    הורד את הפלאגין Eclipse Checkstyle
  • 3
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player הוא נגן מדיה חינמי
    תוכנה, חלקה מבוססת על WMP ו-VLC. ה
    שחקן הוא בסגנון מינימליסטי, עם
    יותר מעשרה צבעי נושא, ויכולים גם
    ב ...
    הורד את AstrOrzPlayer
  • 4
    movistartv
    movistartv
    Kodi Movistar+ TV es un ADDON עבור XBMC/
    Kodi que permite disponer de un
    decodificador de los servicios IPTV de
    Movistar integrado en uno de los
    mediacenters מא...
    הורד את movistartv
  • 5
    קוד :: חסימות
    קוד :: חסימות
    Code::Blocks הוא קוד פתוח בחינם,
    חוצה פלטפורמות C, C++ ו-Fortran IDE
    נבנה כדי לענות על הצרכים התובעניים ביותר
    של המשתמשים שלה. זה נועד להיות מאוד
    מרחיב ...
    קוד הורדה::בלוקים
  • 6
    בין
    בין
    בין ממשק Minecraft או מתקדם
    ומעקב אחר נתונים/מבנה הוא כלי ל
    להציג סקירה כללית של מיינקראפט
    העולם, מבלי ליצור אותו בפועל. זה
    פחית ...
    הורד בין
  • עוד »

פקודות לינוקס

Ad