anchor.diff:                                   match (loopState.IsStopped, req.NextId.Value) with
                                    | (true, _) -> ()
                                    | (_, nextId) when nextId >= int64 req.DuplicatesCount -> loopState.Stop()
  -                                 | _ -> duplicateRecordCheck (req, record, session))
  +                                 | _ -> duplicateRecordCheck (req, record, session, profileQuery))
               |> ignore
           with :? AggregateException as e -> Logger.Log(e, MessageKeyword.Plugin, MessageLevel.Warning)
           // Update session record with job end time
  
positive.code:             match indexService.IsIndexOnline(indexName) with
              | Ok(writer) -> 
                  match writer.Settings.SearchProfiles.TryGetValue(body.ProfileName) with
                  | true, _ -> 
                      let jobId = Guid.NewGuid()
                      requestProcessor.Post(jobId, writer, body)
                      return jobId
                  | _ -> return! fail <| UnknownSearchProfile(indexName, body.ProfileName)
              | Fail(error) -> return! fail error
  
negative.code:         if isNotBlank req.FileName then getFileDataSource (req)
          else getSearchQueryDataSource (req)
      
      let performDuplicateDetection (jobId, indexWriter : IndexWriter.T, req : DuplicateDetectionRequest, profileQuery : SearchQuery) = 
          let session = 
              new Session(IndexName = req.IndexName, ProfileName = req.ProfileName, DisplayFieldName = req.DisplayName, 
                          JobStartTime = DateTime.Now, ThreadCount = req.ThreadCount, 
  