GroupDocs.Search for .NET 26.10 זמין כעת. זו גרסה מרכזית: פורמט האינדקס עבר עיצוב מחדש, ולכן האינדקסים תופסים פחות מקום בדיסק, דורשים חצי מזיכרון ה‑RAM ונפתחים ב‑2 עד 4 פעמים מהר יותר. חיפוש, מחיקה, אופטימיזציה וחיפוש תמונות מואצים במספר פעמים עד מאות, החיפושים אינם מחכים עוד לאינדוקס, ונתוני האינדקס מוגנים עם סכומי בדיקה ועדכונים אטומיים.

אינדקסים קיימים שנוצרו בגרסאות 22.7–26.8 מומרצים לפורמט החדש בלי לבצע אינדוקס מחדש. המהדורה מכילה 22 שינויים: 4 תכונות חדשות, 15 שיפורים ו‑3 תיקונים.

הדגשי ביצועים

רוב השיפורים גדלים עם גודל האינדקס ומספר המקטעים שלו.

מה שיפור ב‑26.10
זיכרון RAM נדרש לאינדקס טעון פעמיים פחות
פתיחת אינדקס ב‑2 עד 4 פעמים מהר יותר
גודל האינדקס בדיסק גדל בפרופורציה לנתונים המאותחנים; ככל שהאינדקס גדול יותר, החיסכון גדול יותר
חיפוש מילה באינדקסים גדולים עד פעמיים מהר יותר; מילים נדירות ב‑10 עד 40 פעמים מהר יותר
חיפוש מעורפל באינדקסים גדולים ב‑2.5 עד 5 פעמים מהר יותר
חיפוש עם תו כללי באינדקסים גדולים ב‑2.5 עד 3 פעמים מהר יותר
חיפוש עם תו כללי, ביטוי רגולרי, טווח מספרי וחיפוש מעורפל בחלקים ב‑7 עד 150 פעמים מהר יותר
חיפוש בטווח תאריכים ב‑2 עד 27 פעמים מהר יותר
מחיקת מסמכים מאות פעמים מהר יותר, 4 פעמים פחות זיכרון, ללא צורך במקום נוסף בדיסק
אופטימיזציית אינדקס ב‑4 פעמים מהר יותר, 4 פעמים פחות זיכרון
זיכרון RAM שיא במהלך אינדוקס פעמיים פחות
קבלת הטקסט השמור של מסמך עד 15 פעמים מהר יותר
נתוני חיפוש תמונה פחות בזיכרון ב‑2.9 פעמים, טעינה ב‑6.6 פעמים מהר יותר, שמירה ב‑100 פעמים מהר יותר; חיפוש תמונה הפוך עד 1.8 פעמים מהר יותר
חיפוש בזמן שהאינדקס משתנה אינו חסום יותר
אמינות האינדקס סכומי בדיקה ושינויים אטומיים; פעולות שהופרעו מושלמות או מבוטלות
חוטי חיפוש כל ליבות המעבד כברירת מחדל; ניתן לשנות בכל זמן

מה חדש במהדורה זו

מפתח סיכום קטגוריה
SEARCHNET-3665 הוספת אפשרות לשנות את מספר חוטי החיפוש בכל זמן תכונה
SEARCHNET-3666 הוספת אפשרות להחליף תווים סורוגטיים לא משויכים תכונה
SEARCHNET-3667 הוספת אפשרות לדלג על מונחים המורכבים רק מתווים משולבים תכונה
SEARCHNET-3668 הוספת עדכון גרסת אינדקס לפורמט החדש ללא אינדוקס מחדש של המסמכים תכונה
SEARCHNET-3669 הוספת אופטימיזציה של צריכת מקום בדיסק של אינדקס שיפור
SEARCHNET-3670 הוספת אופטימיזציה של צריכת RAM של אינדקס טעון שיפור
SEARCHNET-3671 הוספת אופטימיזציה של מהירות טעינת אינדקס שיפור
SEARCHNET-3672 הוספת אופטימיזציה של מהירות חיפוש באינדקסים גדולים שיפור
SEARCHNET-3673 הוספת אופטימיזציה של חיפוש מעורפל שיפור
SEARCHNET-3674 הוספת אופטימיזציה של חיפוש עם תו כללי שיפור
SEARCHNET-3675 הוספת אופטימיזציה של מחיקה ועדכון מסמכים שיפור
SEARCHNET-3676 הוספת אופטימיזציה של פעולת אופטימיזציית האינדקס שיפור
SEARCHNET-3677 לאפשר חיפוש בזמן שהאינדקס משתנה שיפור
SEARCHNET-3678 שיפור אמינות האינדקס שיפור
SEARCHNET-3679 הוספת אופטימיזציה של שימוש בזיכרון במהלך אינדוקס שיפור
SEARCHNET-3680 הוספת אופטימיזציה של שליפת טקסט מסמך שיפור
SEARCHNET-3681 הוספת אופטימיזציה של חיפוש תמונה שיפור
SEARCHNET-3682 הוספת טיפול זהה ברישיות האותיות בכל הפלטפורמות שיפור
SEARCHNET-3688 הוספת אופטימיזציה של חיפוש בחלקים שיפור
SEARCHNET-3683 תיקון מספר חוטי החיפוש ברירת המחדל תיקון
SEARCHNET-3684 מניעת אינדוקס לא עקבי לאחר שינוי מילוני מונחים תיקון
SEARCHNET-3685 מניעת מיזוג אינדקסים שמעבדים טקסט באופן שונה תיקון

תכונות מרכזיות

אחסון האינדקס ואמינות

  • גודל האינדקס כעת גדל בפרופורציה לנתונים המאותחנים, ולכן אינדקסים גדולים עם הרבה מקטעים חוסכים את מירב המקום.
  • אינדקס טעון דורש חצי מזיכרון ה‑RAM, ופתיחת אינדקס היא ב‑2 עד 4 פעמים מהר יותר.
  • נתוני האינדקס מוגנים עם סכומי בדיקה, וכל השינויים מתבצעים באופן אטומי. אם פעולה מופרעת בשל שגיאה, כשל חשמל או סיום תהליך, האינדקס נשאר במצב הקונסיסטנטי הקודם שלו.

חיפוש

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

אינדוקס ותחזוקה

  • מחיקת מסמכים אינה משכתבת את האינדקס יותר: המסמכים מוחרים מהחיפוש מיידית ומוסרים פיזית במהלך האופטימיזציה.
  • אופטימיזציית האינדקס היא ב‑4 פעמים מהר יותר ומשתמשת ב‑4 פעמים פחות זיכרון; אינדקסים גדולים מאוד מתאימים למספר מקטעים בגודל מוגבל.
  • האינדוקס צורך כ‑חצי מזיכרון ה‑RAM השיא.

עיבוד טקסט

  • רישיות האותיות מטופלת באופן זהה ב‑.NET Framework וב‑.NET, ולכן תוצאות החיפוש אינן תלויות בפלטפורמה.
  • תווים סורוגטיים לא משויכים מוחלפים ב‑U+FFFD במקום להסירם, ומונחים המורכבים רק מתווים משולבים אינם מאונדקסים יותר.

שינויים בממשק API ציבורי

נוספו שני מאפיינים למחלקה GroupDocs.Search.IndexSettings:

  • Boolean ReplaceUnpairedSurrogates – מחליף תווים סורוגטיים UTF-16 לא משויכים בתו ההחלפה של Unicode (U+FFFD). מופעל כברירת מחדל.
  • Boolean SkipBlendedOnlyTerms – מחריג מהאינדוקס מונחים המורכבים רק מתווים משולבים. מופעל כברירת מחדל.

שני ההגדרות קבועות בעת יצירת אינדקס.

דוגמת קוד

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

string sourceIndexFolder = @"c:\MyOldIndex\"; // Specify path to the index of a previous version
string targetIndexFolder = @"c:\MyNewIndex\"; // Specify path to the folder for the updated index

IndexUpdater updater = new IndexUpdater(); // Creating an index updater

if (updater.CanUpdateVersion(sourceIndexFolder)) // Checking whether the index version can be updated
{
    VersionUpdateResult result = updater.UpdateVersion(sourceIndexFolder, targetIndexFolder); // Updating the index version; the source index is not changed
}

הערות שדרוג

קחו בחשבון את השינויים הבאים בעת השדרוג מגרסה קודמת:

  • פורמט האינדקס השתנה. אינדקסים של גרסאות קודמות חייבים להיות מומרצים עם המחלקה IndexUpdater לפני שניתן לפתוח אותם. אין צורך במסמכי המקור, האינדקס המומרץ נשמר בתיקייה אחרת, והאינדקס המקורי אינו משתנה.
  • מילוני המונחים קבועים ברגע שהאינדקס מכיל מסמכים. האלפבית, מילון הטוקניזציה, החלפות תווים, מילות עצירה, וההגדרות UseStopWords ו‑UseCharacterReplacements חייבים להיות מוגדרים לפני האינדוקס של המסמך הראשון. שינוי מאוחר יותר יגרום ל‑InvalidOperationException.
  • אינדקסים לא תואמים אינם מתמזגים. Index.Merge זורק InvalidOperationException אם האינדקסים הממוזגים מחלקים טקסט למונחים באופן שונה.
  • החיפוש מרובה חוטים כברירת מחדל. עם IndexSettings.SearchThreads ברירת המחדל, החיפוש משתמש בכמות החוטים השווה למספר ליבות המעבד. כדי להגביל את מספר החוטים, יש להגדיר את המאפיין במפורש.
  • שני הגדרות אינדקס חדשות מופעלות כברירת מחדל. כדי לשמור על ההתנהגות הקודמת, הגדר את ReplaceUnpairedSurrogates ו‑SkipBlendedOnlyTerms ל‑false לפני יצירת אינדקס.
  • מסמכים שנמחקו מוסרים פיזית במהלך האופטימיזציה. קראו ל‑Index.Optimize כדי לשחזר את המקום.
  • מספר החלקים השתנה. חיפוש בחלקים אינו מחזיר יותר חלק לכל מקטע. יש לעבור על החלקים כל עוד SearchResult.NextChunkSearchToken אינו null במקום להסתמך על מספר המקטעים.

איך לקבל את העדכון

NuGet

  • NuGet – התקנת החבילה העדכנית:
# Package Manager
NuGet\Install-Package GroupDocs.Search -Version 26.10.0

# .NET CLI
dotnet add package GroupDocs.Search --version 26.10.0
# Package Manager
NuGet\Install-Package GroupDocs.Search.NETFramework -Version 26.10.0

# .NET CLI
dotnet add package GroupDocs.Search.NETFramework --version 26.10.0

הורדה ישירה

משאבים