/// <summary>
 /// Searches the specified search item.
 /// </summary>
 /// <param name="searchItem">The search item.</param>
 /// <returns></returns>
 internal int Search(IndexItem searchItem)
 {
     return(InDeserializationContext.PrimarySortInfo.IsTag ?
            InternalItemList.LinearSearch(InternalItemAdapter.ConvertToInternalItem(searchItem), InDeserializationContext.LocalIdentityTagNames) :
            InternalItemList.BinarySearchItem(InternalItemAdapter.ConvertToInternalItem(searchItem),
                                              InDeserializationContext.PrimarySortInfo.IsTag,
                                              InDeserializationContext.PrimarySortInfo.FieldName,
                                              InDeserializationContext.PrimarySortInfo.SortOrderList, InDeserializationContext.LocalIdentityTagNames));
 }