search_documents

in profile/benchmarking/complex.rb [84:118]


      def search_documents(opts = {})
        results = []

        duration = with_cleanup do
          slices = dataset_slices
          sample_slice = slices.collect do |slice|
            client.bulk(body: slice)
            slice
          end[rand(slices.size)-1]

          sample_document = sample_slice[rand(sample_slice.size)-1][:index][:data]
          search_criteria = sample_document.find { |k,v| v.is_a?(String) }
          request = { body: { query: { match: { search_criteria[0] => search_criteria[1] } } } }

          warmup_repetitions.times do
            client.search(request)
          end

          Benchmark.realtime do
            results = measured_repetitions.times.collect do
              Benchmark.realtime do
                client.search(request)
              end
            end
          end
        end

        options = { duration: duration,
                    operation: __method__,
                    dataset: File.basename(DATASET_FILE),
                    dataset_size: ObjectSpace.memsize_of(dataset),
                    dataset_n_documents: dataset.length }
        index_results!(results, options)
      end