Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-10607

NRTSuggesterBuilder扩展input时溢出

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 9.2
    • 9.3
    • core/FSTs
    • None
    • New

    Description

      suggest模块在创建索引时,调用NRTSuggestBuilder的finishTerm来写入suggest索引。

      会调用maxNumArcsForDedupByte函数来扩展analyzed,向后扩展3 5 7 .... 255。

      当entries长度过长(9000000)时,调用maxNumArcsForDedupByte扩展时

       

      private static int maxNumArcsForDedupByte(int currentNumDedupBytes) {
      int maxArcs = 1 + (2 * currentNumDedupBytes);
      if (currentNumDedupBytes > 5)

      { maxArcs *= currentNumDedupBytes;  //当currentNumDedupBytes大于等于32768时,int相乘会大于int最大值 }

      return Math.min(maxArcs, 255);
      }

       

      另外在扩展时,是否可以选择固定4字节来有序扩展。代替 3 5 7 ... 255的扩展方式

       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ChasenY chaseny
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m