Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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