public void Create(DataSet dataSet, bool withSchema)
        {
            try
            {
                GlobalStore.DataSets.AddBusy(dataSet.Name);
                var indexName = GenerateIndexName();

                if (!withSchema)
                {
                    indexQuery.CreateIndex(
                        dataSet.Name,
                        indexName,
                        dataSet.NGramCount,
                        dataSet.SampleDocument,
                        dataSet.IdField,
                        dataSet.InterpretedFields,
                        dataSet.TagField);
                }
                else
                {
                    indexQuery.CreateIndexWithSchema(
                        dataSet.Name,
                        indexName,
                        dataSet.NGramCount,
                        dataSet.Schema,
                        dataSet.IdField,
                        dataSet.InterpretedFields,
                        dataSet.TagField);
                }

                AddGlobalStoreInternal(dataSet.Name, indexName, dataSet);
            }
            finally
            {
                GlobalStore.DataSets.RemoveBusy(dataSet.Name);
            }
        }