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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib)

שאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib)

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 2 כותבים 144 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • pcinfogmachP מנותק
    pcinfogmachP מנותק
    pcinfogmach
    כתב ב נערך לאחרונה על ידי pcinfogmach
    #1

    נתקלתי בבעיה כאשר אני משתמש בחיפוש רגקס בספריית lucene ב .contrib.regex שזה רק מצליח לחפש מילה אחת אבל לא הרבה מילים.
    אשמח לקבל כל עזרה בנושא.

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

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

      תצרף קוד, קלט, פלט, ופלט רצוי.

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

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

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

        @dovid

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

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

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

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

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

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

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

            @dovid כתב בשאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib):

            מהסיבה הזו אני תוהה אם הוא טוב לעברית

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

            @dovid כתב בשאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib):

            ממה שאני מבין, גם בחיפוש הרגיל של lucene אמורים לפצל את המילים ולהשתמש בPhraseQuery.

            כוונתך לפקודה "queryParser"?

            @dovid כתב בשאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib):

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

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

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

            תודה

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

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

              @pcinfogmach כתב בשאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib):

              כוונתך לפקודה "queryParser"?

              לא.
              לזה https://lucenenet.apache.org/docs/3.0.3/d5/d58/class_lucene_1_1_net_1_1_search_1_1_phrase_query.html
              אני באמת לא בטוח במה שכתבתי, כי אחרי הכל אני בחיים לא השתמשתי עם lucene ולא הבנתי את הפילוסופיה שלה כלל.

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

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

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

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

                @dovid כתב בשאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib):

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

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

                ועוד שאלה אם בכל אופן בלית ברירה אלך על הצלבה באיזו ספרייה מומלץ להשתמש?

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

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

                  @pcinfogmach כתב בשאלה בc#: מישהו מכיר את lucene.net נתקע לי משהו בחיפוש רגקס (contib):

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

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

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

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

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

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

                    @dovid
                    תודה רבה מאוד עזרת לי

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

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

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

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

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