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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ספריית החיפוש meilisearch ב-בC#

ספריית החיפוש meilisearch ב-בC#

מתוזמן נעוץ נעול הועבר תכנות
24 פוסטים 4 כותבים 1.1k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לpcinfogmach ב נערך לאחרונה על ידי dovid
    #11

    @pcinfogmach כתב בספריית החיפוש meilisearch ב-בC#:

    תכלס השגיאה הנ"ל עדיין קיימת

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

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

    סליחה על המוסר, חזק ואמץ.

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    pcinfogmachP תגובה 1 תגובה אחרונה
    0
    • pcinfogmachP מנותק
      pcinfogmachP מנותק
      pcinfogmach
      השיב לdovid ב נערך לאחרונה על ידי pcinfogmach
      #12

      @dovid
      אוקיי אולי קפצתי מדאי מהר מדאי אני קצת מבין יותר טוב עכשיו איך זה עובד בעצם meiliserach הינה "תוכנה" שאני יכול לגשת אליה דרך api ב-C#
      אבל לא מדובר בספרייה של C# כלל

      גמ"ח מידע מחשבים ואופיס

      תגובה 1 תגובה אחרונה
      1
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #13

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

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        pcinfogmachP תגובה 1 תגובה אחרונה
        0
        • pcinfogmachP מנותק
          pcinfogmachP מנותק
          pcinfogmach
          השיב לdovid ב נערך לאחרונה על ידי pcinfogmach
          #14

          @dovid כתב בספריית החיפוש meilisearch ב-בC#:

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

          כלומר לא הגיוני בתוכנה שלי תורת אמת בוורד?

          גמ"ח מידע מחשבים ואופיס

          תגובה 1 תגובה אחרונה
          1
          • אלף שיןא מנותק
            אלף שיןא מנותק
            אלף שין
            השיב לsivan22 ב נערך לאחרונה על ידי
            #15

            @sivan22 מה מהירות החיפוש באינדקס זה?
            אם זה מדאי כבד אפשר ליצור אינדקס עצמאי [לא צריך דווקא ספריה מוכנה...]

            הרעיון של אינדקס הוא די פשוט
            A background index! That's a great idea to speed up search times. Creating an inverted index is a common technique to accelerate searching large amounts of text data. Here's a high-level overview of how you can create a background index:

            What is an inverted index?

            An inverted index is a data structure that maps each unique term (word, phrase, keyword, etc.) to a list of documents that contain that term. This allows for efficient searching, as you can quickly retrieve the documents containing a given term.

            How to create a background index?

            To create a background index, you'll need to follow these steps:

            1. Preprocess the data: Read in your files, split them into individual documents, and tokenize them into individual words (tokens). You may also want to apply stemming, stopword removal, and other text processing techniques to reduce the dimensionality of the data.
            2. Build the index: Create an empty index data structure, such as a dictionary or a hash table, that will store the mapping between terms and documents. Iterate through the tokenized documents and update the index with each document. For each term, add the document ID to the list of documents that contain that term.
            3. Write the index to disk: Once the index is built, write it to disk as a file or a database. This will allow you to store the index independently of the original data and retrieve it quickly for searching.
            4. Build an index writer process: Create a separate process or thread that runs in the background, continuously updating the index as new documents are added, removed, or modified. This process will ensure that the index remains up-to-date.

            How to query the index?

            To query the index, you'll need to:

            1. Tokenize the search query: Break down the search query into individual words (tokens).
            2. Lookup terms in the index: Iterate through the tokens and look up each one in the index. This will give you a list of documents that contain each term.
            3. Intersect the results: Combine the lists of documents that contain each token to get the final result set.
            4. Retrieve and rank the results: Use the final result set to retrieve the actual documents and rank them according to their relevance.

            Some considerations:

            • Index size: The size of the index can grow rapidly as the number of documents increases. You may need to implement techniques like compression, sparse matrices, or distributed indexing to manage the index size.
            • Index latency: Building and updating the index can take time, which may impact the freshness of the data. You may need to implement mechanisms to handle delayed updates or use a combination of real-time and batch updates.
            • Search optimization: The querying process can also be optimized using techniques like caching, caching query results, or using specialized search algorithms.
            • Index rebuilding: When rebuilding the index, you may need to consider strategies like incremental updating, iterative rebuilding, or even splitting the index into smaller pieces.

            Bonus tip: Use existing libraries and tools

            Many programming languages and libraries provide built-in support for creating and querying inverted indices. For example:

            • Lucene.NET (C#): A popular search engine library for .NET that includes support for building and querying inverted indices.
            • Elastic Search ( Java 😞 A distributed search engine that provides high-performance search capabilities and automatically builds inverted indices.
            • Apache Solr (Java): A popular search server that allows you to create and query inverted indices.

            Remember to consider the trade-offs between index size, query performance, and data freshness when designing your background index. Good luck!

            למעשה יש כמה שיפורים קטנים ממש להוסיף ואז זה מושלם!
            [למשל חלוקה של האינדקס לקבצים שונים לפי תווים וכן חלוקת כל מסמך למקטעים].

            תגובה 1 תגובה אחרונה
            -1
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #16

              @אלף-שין הכי מגוחך שאתה מביא טקסט שממליץ להשתמש בספריה מוכנה.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              אלף שיןא תגובה 1 תגובה אחרונה
              2
              • אלף שיןא מנותק
                אלף שיןא מנותק
                אלף שין
                השיב לdovid ב נערך לאחרונה על ידי
                #17

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

                pcinfogmachP תגובה 1 תגובה אחרונה
                -1
                • pcinfogmachP מנותק
                  pcinfogmachP מנותק
                  pcinfogmach
                  השיב לאלף שין ב נערך לאחרונה על ידי pcinfogmach
                  #18

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

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

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

                  גמ"ח מידע מחשבים ואופיס

                  אלף שיןא תגובה 1 תגובה אחרונה
                  4
                  • sivan22S מנותק
                    sivan22S מנותק
                    sivan22
                    כתב ב נערך לאחרונה על ידי
                    #19

                    חבל להמציא את הגלגל כשעשו לך כבר את העבודה, בפרט טיפול מיוחד בעברית כולל הבנת שורשים מתקדמת עם מילון וגם אלגוריתמים, שזו עבודת נמלים לבנות לבד.
                    meilisearch כולל באופן מובנה תמיכה ברלוונטיות, כלומר האינדקס כבר לוקח בחשבון מרחק וסדר של מילים, מרחק לוינשטיין לשגיאות כתיב, משקל שונה לכל שדה, והכל עם כפית של כסף out-of-the-box.
                    גם המהירות היא משמעותית, ועדיף להשתמש במנוע שכתוב בשפה מהירה כמו C++ או RUST.
                    לאנדקס לבד יכול להתאים למשימות קטנות יותר, אבל כשמדובר על כמה עשרות מיליונים של טקסטים, צריך בולדוזר מוכח.

                    pcinfogmachP אלף שיןא 2 תגובות תגובה אחרונה
                    3
                    • pcinfogmachP מנותק
                      pcinfogmachP מנותק
                      pcinfogmach
                      השיב לsivan22 ב נערך לאחרונה על ידי
                      #20

                      @sivan22 כתב בספריית החיפוש meilisearch ב-בC#:

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

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

                      גמ"ח מידע מחשבים ואופיס

                      תגובה 1 תגובה אחרונה
                      0
                      • אלף שיןא מנותק
                        אלף שיןא מנותק
                        אלף שין
                        השיב לsivan22 ב נערך לאחרונה על ידי
                        #21

                        @sivan22 כתב בספריית החיפוש meilisearch ב-בC#:

                        חבל להמציא את הגלגל כשעשו לך כבר את העבודה

                        @sivan22 כתב בספריית החיפוש meilisearch ב-בC#:

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

                        pcinfogmachP תגובה 1 תגובה אחרונה
                        0
                        • אלף שיןא מנותק
                          אלף שיןא מנותק
                          אלף שין
                          השיב לpcinfogmach ב נערך לאחרונה על ידי
                          #22

                          @pcinfogmach כתב בספריית החיפוש meilisearch ב-בC#:

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

                          זהותון מחפש תוך פחות משנייה על 3.5 GB שזה הרי ללא אינדקס........ [כי בכל אופן זה מילים חדשות אז אין מה לאנדקס....]

                          תגובה 1 תגובה אחרונה
                          0
                          • pcinfogmachP מנותק
                            pcinfogmachP מנותק
                            pcinfogmach
                            השיב לאלף שין ב נערך לאחרונה על ידי
                            #23

                            @אלף-שין
                            כשזהו החיסרון היחיד זה מתגמד לעומת כל שאר התועליות

                            גמ"ח מידע מחשבים ואופיס

                            אלף שיןא תגובה 1 תגובה אחרונה
                            1
                            • אלף שיןא מנותק
                              אלף שיןא מנותק
                              אלף שין
                              השיב לpcinfogmach ב נערך לאחרונה על ידי
                              #24

                              @pcinfogmach
                              לפעמים זה נכון,
                              קח לדוגמה את המאגר של היברו בוקס,
                              מדובר על מאות גיגה! [קרוב ל650]
                              אם ניצור אינדקס באמצעות הספריה הזאת,
                              כמה זה ישקול?......
                              קרוב ל2 TB!

                              תגובה 1 תגובה אחרונה
                              1

                              • 1
                              • 2
                              בא תתחבר לדף היומי!
                              • התחברות

                              • אין לך חשבון עדיין? הרשמה

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