def test_reset_indexer(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) result = client.create_indexer(indexer) assert len(client.get_indexers()) == 1 result = client.reset_indexer("sample-indexer") assert client.get_indexer_status("sample-indexer").last_result.status in ('InProgress', 'reset')
def test_create_indexer(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) result = client.create_indexer(indexer) assert result.name == "sample-indexer" assert result.target_index_name == "hotels" assert result.data_source_name == "sample-datasource"
def test_delete_indexer(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) result = client.create_indexer(indexer) assert len(client.get_indexers()) == 1 client.delete_indexer("sample-indexer") assert len(client.get_indexers()) == 0
def test_run_indexer(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) result = client.create_indexer(indexer) assert len(client.get_indexers()) == 1 start = time.time() client.run_indexer("sample-indexer") assert client.get_indexer_status("sample-indexer").status == 'running'
def test_list_indexer(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer1 = self._prepare_indexer(endpoint, api_key) indexer2 = self._prepare_indexer(endpoint, api_key, name="another-indexer", ds_name="another-datasource", id_name="another-index") created1 = client.create_indexer(indexer1) created2 = client.create_indexer(indexer2) result = client.get_indexers() assert isinstance(result, list) assert set(x.name for x in result) == {"sample-indexer", "another-indexer"}
def sample_indexer_workflow(): # Now that we have a datasource and an index, we can create an indexer. skillset_name = _create_skillset().name print("Skillset is created") ds_name = _create_datasource().name print("Data source is created") ind_name = _create_index().name print("Index is created") # we pass the data source, skillsets and targeted index to build an indexer parameters = IndexingParameters(configuration={"parsingMode": "jsonArray"}) indexer = SearchIndexer( name="hotel-data-indexer", data_source_name=ds_name, target_index_name=ind_name, skillset_name=skillset_name, parameters=parameters ) indexer_client = SearchIndexerClient(service_endpoint, AzureKeyCredential(key)) indexer_client.create_indexer(indexer) # create the indexer # to get an indexer result = indexer_client.get_indexer("hotel-data-indexer") print(result) # To run an indexer, we can use run_indexer() indexer_client.run_indexer(result.name) # Using create or update to schedule an indexer schedule = IndexingSchedule(interval=datetime.timedelta(hours=24)) result.schedule = schedule updated_indexer = indexer_client.create_or_update_indexer(result) print(updated_indexer) # get the status of an indexer indexer_client.get_indexer_status(updated_indexer.name)
def test_create_or_update_indexer(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) created = client.create_indexer(indexer) assert len(client.get_indexers()) == 1 indexer.description = "updated" client.create_or_update_indexer(indexer) assert len(client.get_indexers()) == 1 result = client.get_indexer("sample-indexer") assert result.name == "sample-indexer" assert result.description == "updated"
def test_delete_indexer_if_unchanged(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) result = client.create_indexer(indexer) etag = result.e_tag indexer.description = "updated" client.create_or_update_indexer(indexer) indexer.e_tag = etag with pytest.raises(HttpResponseError): client.delete_indexer(indexer, match_condition=MatchConditions.IfNotModified)
def test_get_indexer_status(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) result = client.create_indexer(indexer) status = client.get_indexer_status("sample-indexer") assert status.status is not None
def test_get_indexer(self, api_key, endpoint, index_name, **kwargs): client = SearchIndexerClient(endpoint, AzureKeyCredential(api_key)) indexer = self._prepare_indexer(endpoint, api_key) created = client.create_indexer(indexer) result = client.get_indexer("sample-indexer") assert result.name == "sample-indexer"