Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion sdk/search/azure-search-documents/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# Release History

## 1.0.0-beta.4 (Unreleased)

- Split `SearchServiceClient` into two clients `SearchIndexClient`, `SearchIndexerClient`.
- Split `SearchServiceAsyncClient` into two clients `SearchIndexAsyncClient`, `SearchIndexerAsyncClient`.
- Added `SearchIndexClientBuilder` to build sync client `SearchIndexClient` and async client `SearchIndexAsyncClient`.
- Added `SearchIndexerClientBuilder` to build sync client `SearchIndexerClient` and async client `SearchIndexerAsyncClient`.
- Removed `SearchServiceClientBuilder`.
- Renamed `SearchIndexClient` to `SearchClient` and `SearchIndexAsyncClient` to `SearchAsyncClient`.
- Put all models used `SearchIndexClient` and `SearchIndexerClient` (same for async clients) under `com.azure.search.documents.indexes`.

## 1.0.0-beta.3 (2020-05-05)
- Replaced `isRetrievable` API with `isHidden`, parameter name changed from `retrievable` to `hidden`.
Expand Down
96 changes: 48 additions & 48 deletions sdk/search/azure-search-documents/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,20 @@ and [admin key](https://docs.microsoft.com/en-us/azure/search/search-security-ap

<!-- embedme ./src/samples/java/com/azure/search/documents/ReadmeSamples.java#L40-L43 -->
```Java
SearchServiceClient searchServiceClient = new SearchServiceClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(adminKey))
.buildClient();
private SearchClient searchClient = new SearchClientBuilder().buildClient();

public void createSearchClient() {
SearchIndexClient searchIndexClient = new SearchIndexClientBuilder()
```

or

<!-- embedme ./src/samples/java/com/azure/search/documents/ReadmeSamples.java#L47-L50 -->
```Java
SearchServiceAsyncClient searchServiceAsyncClient = new SearchServiceClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(adminKey))
.buildAsyncClient();
}

public void createAsyncSearchClient() {
SearchIndexAsyncClient searchIndexAsyncClient = new SearchIndexClientBuilder()
```

#### Create a SearchIndexClient
Expand All @@ -69,22 +69,22 @@ Note that you will need an admin key to index documents (query keys only work fo

<!-- embedme ./src/samples/java/com/azure/search/documents/ReadmeSamples.java#L54-L58 -->
```Java
SearchIndexClient searchIndexClient = new SearchIndexClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(apiKey))
.indexName(indexName)
.buildClient();
}

public void createIndexClient() {
SearchClient searchClient = new SearchClientBuilder()
.endpoint(endpoint)
```

or

<!-- embedme ./src/samples/java/com/azure/search/documents/ReadmeSamples.java#L62-L66 -->
```Java
SearchIndexAsyncClient searchIndexAsyncClient = new SearchIndexClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(apiKey))
.indexName(indexName)
.buildAsyncClient();
}

public void createAsyncIndexClient() {
SearchAsyncClient searchAsyncClient = new SearchClientBuilder()
.endpoint(endpoint)
```

## Key concepts
Expand All @@ -106,54 +106,54 @@ There are several types of operations that can be executed against the service:

### Create an index

Create Index using `searchIndexClient` instantiated in [Create a SearchServiceClient](#create-a-searchserviceclient)
Create Index using `searchClient` instantiated in [Create a SearchServiceClient](#create-a-searchserviceclient)

<!-- embedme ./src/samples/java/com/azure/search/documents/ReadmeSamples.java#L96-L107 -->
```java
SearchIndex newIndex = new SearchIndex()
.setName("index_name")
.setFields(
Arrays.asList(new SearchField()
.setName("Name")
.setType(SearchFieldDataType.STRING)
.setKey(Boolean.TRUE),
new SearchField()
.setName("Cuisine")
.setType(SearchFieldDataType.STRING)));
// Create index.
searchServiceClient.createIndex(newIndex);
}

public void createIndexWithSyncClient() {
SearchIndex newIndex = new SearchIndex()
.setName("index_name")
.setFields(
Arrays.asList(new SearchField()
.setName("Name")
.setType(SearchFieldDataType.STRING)
.setKey(Boolean.TRUE),
new SearchField()
.setName("Cuisine")
```
### Upload a Document

Upload hotel document to Search Index using `searchIndexClient` instantiated [Create a SearchIndexClient](#create-a-searchindexclient)
Upload hotel document to Search Index using `searchClient` instantiated [Create a SearchIndexClient](#create-a-searchindexclient)

<!-- embedme ./src/samples/java/com/azure/search/documents/ReadmeSamples.java#L111-L116 -->
```java
List<Hotel> hotels = new ArrayList<>();
hotels.add(new Hotel().setHotelId("100"));
hotels.add(new Hotel().setHotelId("200"));
hotels.add(new Hotel().setHotelId("300"));
// Upload hotel.
searchIndexClient.uploadDocuments(hotels);
}

public void uploadDocumentWithSyncClient() {
List<Hotel> hotels = new ArrayList<>();
hotels.add(new Hotel().setHotelId("100"));
hotels.add(new Hotel().setHotelId("200"));
```

### Search on hotel name

Search hotel using keyword using `searchIndexClient` instantiated in [Create a SearchIndexClient](#create-a-searchindexclient)
Search hotel using keyword using `searchClient` instantiated in [Create a SearchIndexClient](#create-a-searchindexclient)

<!-- embedme ./src/samples/java/com/azure/search/documents/ReadmeSamples.java#L120-L130 -->
```java
// Perform a text-based search
for (SearchResult result : searchIndexClient.search("luxury hotel",
new SearchOptions(), new RequestOptions(), Context.NONE)) {

// Each result is a dynamic Map
SearchDocument doc = result.getDocument();
String hotelName = (String) doc.get("HotelName");
Double rating = (Double) doc.get("Rating");

System.out.printf("%s: %s%n", hotelName, rating);
}
oid searchTextWithSyncClient() {
erform a text-based search
(SearchResult result : searchClient.search("luxury hotel",
new SearchOptions(), new RequestOptions(), Context.NONE)) {

// Each result is a dynamic Map
SearchDocument doc = result.getDocument();
String hotelName = (String) doc.get("HotelName");
Double rating = (Double) doc.get("Rating");
```

- Samples are explained in detail [here][samples_readme].
Expand Down
1 change: 1 addition & 0 deletions sdk/search/azure-search-documents/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
--add-exports com.azure.core/com.azure.core.implementation.http=ALL-UNNAMED
--add-opens com.azure.core/com.azure.core.util=ALL-UNNAMED
--add-opens com.azure.search.documents/com.azure.search.documents=ALL-UNNAMED
--add-opens com.azure.search.documents/com.azure.search.documents.indexes=ALL-UNNAMED
--add-opens com.azure.search.documents/com.azure.search.documents.models=ALL-UNNAMED
--add-opens com.azure.search.documents/com.azure.search.documents.implementation=ALL-UNNAMED
--add-opens com.azure.search.documents/com.azure.search.documents.implementation.models=ALL-UNNAMED
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@
/**
* Cognitive Search Asynchronous Client to query an index and upload, merge, or delete documents
*/
@ServiceClient(builder = SearchIndexClientBuilder.class, isAsync = true)
public final class SearchIndexAsyncClient {
@ServiceClient(builder = SearchClientBuilder.class, isAsync = true)
public final class SearchAsyncClient {
/*
* Representation of the Multi-Status HTTP response code.
*/
Expand Down Expand Up @@ -88,7 +88,7 @@ public final class SearchIndexAsyncClient {
/**
* The logger to be used
*/
private final ClientLogger logger = new ClientLogger(SearchIndexAsyncClient.class);
private final ClientLogger logger = new ClientLogger(SearchAsyncClient.class);

/**
* The underlying AutoRest client used to interact with the Azure Cognitive Search service
Expand All @@ -101,9 +101,9 @@ public final class SearchIndexAsyncClient {
private final HttpPipeline httpPipeline;

/**
* Package private constructor to be used by {@link SearchIndexClientBuilder}
* Package private constructor to be used by {@link SearchClientBuilder}
*/
SearchIndexAsyncClient(String endpoint, String indexName, SearchServiceVersion serviceVersion,
SearchAsyncClient(String endpoint, String indexName, SearchServiceVersion serviceVersion,
HttpPipeline httpPipeline) {

this.endpoint = endpoint;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,18 @@
/**
* Cognitive Search Synchronous Client to query an index and upload, merge, or delete documents
*/
@ServiceClient(builder = SearchIndexClientBuilder.class)
public final class SearchIndexClient {
@ServiceClient(builder = SearchClientBuilder.class)
public final class SearchClient {

private final SearchIndexAsyncClient asyncClient;
private final SearchAsyncClient asyncClient;

/**
* Package private constructor to be used by {@link SearchIndexClientBuilder}
* Package private constructor to be used by {@link SearchClientBuilder}
*
* @param searchIndexAsyncClient Async SearchIndex Client
* @param searchAsyncClient Async SearchIndex Client
*/
SearchIndexClient(SearchIndexAsyncClient searchIndexAsyncClient) {
this.asyncClient = searchIndexAsyncClient;
SearchClient(SearchAsyncClient searchAsyncClient) {
this.asyncClient = searchAsyncClient;
}

/**
Expand Down
Loading