コード例 #1
0
ファイル: CollationKeyFilter.cs プロジェクト: xinix00/ravendb
 public override bool IncrementToken()
 {
     if (input.IncrementToken())
     {
         char[] termBuffer    = termAtt.TermBuffer();
         var    termText      = new String(termBuffer, 0, termAtt.TermLength());
         byte[] collationKey  = cultureInfo.CompareInfo.GetSortKey(termText).KeyData;
         int    encodedLength = IndexableBinaryStringTools_UsingArrays.GetEncodedLength(collationKey);
         if (encodedLength > termBuffer.Length)
         {
             termBuffer = termAtt.ResizeTermBuffer(encodedLength);
         }
         termAtt.SetTermLength(encodedLength);
         IndexableBinaryStringTools_UsingArrays.Encode(collationKey, termBuffer);
         return(true);
     }
     return(false);
 }
コード例 #2
0
 public override bool IncrementToken()
 {
     if (input.IncrementToken())
     {
         int len = termAtt.TermLength();
         if (marker != NOMARKER)
         {
             len++;
             termAtt.ResizeTermBuffer(len);
             termAtt.TermBuffer()[len - 1] = marker;
         }
         Reverse(termAtt.TermBuffer(), len);
         termAtt.SetTermLength(len);
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #3
0
        public override bool IncrementToken()
        {
            if (input.IncrementToken() == false)
            {
                return(false);
            }

            var termBuffer    = _termAtt.TermBuffer();
            var termText      = new string(termBuffer, 0, _termAtt.TermLength());
            var collationKey  = GetCollationKey(termText);
            var encodedLength = IndexableBinaryStringTools_UsingArrays.GetEncodedLength(collationKey);

            if (encodedLength > termBuffer.Length)
            {
                termBuffer = _termAtt.ResizeTermBuffer(encodedLength);
            }

            _termAtt.SetTermLength(encodedLength);
            IndexableBinaryStringTools_UsingArrays.Encode(collationKey, termBuffer);

            return(true);
        }