Skip to content

Commit

Permalink
Merge pull request Azure#13 from navalev/retrieve-document
Browse files Browse the repository at this point in the history
implement retreive generic document
  • Loading branch information
LizaShak authored Aug 8, 2019
2 parents f91a6fa + 9e06440 commit 2d7d6c8
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import reactor.core.publisher.Mono;

import java.util.List;
import java.util.Map;

/**
* The public (Customer facing) interface for SearchIndexASyncClient.
Expand Down Expand Up @@ -80,7 +81,7 @@ PagedFlux<SearchResult> search(String searchText,
* @param key the name of the document
* @return
*/
Mono<Object> getDocument(String key);
Mono<Map<String, Object>> getDocument(String key);

/**
* Retrieves a document from the Azure Search index.
Expand All @@ -90,7 +91,7 @@ PagedFlux<SearchResult> search(String searchText,
* @param searchRequestOptions
* @return
*/
Mono<Object> getDocument(String key, List<String> selectedFields, SearchRequestOptions searchRequestOptions);
Mono<Map<String, Object>> getDocument(String key, List<String> selectedFields, SearchRequestOptions searchRequestOptions);

/**
* Suggests documents in the Azure Search index that match the given partial query text.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.azure.search.data.generated.models.*;

import java.util.List;
import java.util.Map;

/**
* The public (Customer facing) interface for SearchIndexClient.
Expand Down Expand Up @@ -77,7 +78,7 @@ DocumentSearchResult search(String searchText,
* @param key the name of the document
* @return
*/
Object getDocument(String key);
Map<String, Object> getDocument(String key);

/**
* Retrieves a document from the Azure Search index.
Expand All @@ -87,7 +88,7 @@ DocumentSearchResult search(String searchText,
* @param searchRequestOptions
* @return
*/
Object getDocument(String key, List<String> selectedFields, SearchRequestOptions searchRequestOptions);
Map<String, Object> getDocument(String key, List<String> selectedFields, SearchRequestOptions searchRequestOptions);

/**
* Suggests documents in the Azure Search index that match the given partial query text.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.azure.search.data.common;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

public class DocumentResponseConversions {

public static Map<String, Object> convertLinkedHashMapToMap(Object linkedMapObject) {
LinkedHashMap<String, Object> linkedMap = (LinkedHashMap<String, Object>) linkedMapObject;
Set<Map.Entry<String, Object>> entries = linkedMap.entrySet();

Map<String, Object> convertedMap = new HashMap<>();

for (Map.Entry<String, Object> entry : entries) {
convertedMap.put(entry.getKey(), entry.getValue());
}

return convertedMap;

}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.azure.search.data.customization;

import com.azure.search.data.common.DocumentResponseConversions;
import com.azure.search.data.common.SearchPipelinePolicy;
import com.azure.core.http.rest.PagedFlux;
import com.azure.search.data.SearchIndexASyncClient;
import com.azure.search.data.generated.models.*;
import reactor.core.publisher.Mono;

import java.util.List;
import java.util.Map;

public class SearchIndexASyncClientImpl extends SearchIndexBaseClientImpl implements SearchIndexASyncClient {

Expand Down Expand Up @@ -40,16 +42,21 @@ public PagedFlux<SearchResult> search(String searchText,
}

@Override
public Mono<Object> getDocument(String key) {
return restClient.documents().getAsync(key);
public Mono<Map<String, Object>> getDocument(String key) {
return restClient.documents().getAsync(key).map(DocumentResponseConversions::convertLinkedHashMapToMap);
}

@Override
public Mono<Object> getDocument(String key, List<String> selectedFields,
SearchRequestOptions searchRequestOptions) {
return restClient.documents().getAsync(key, selectedFields, searchRequestOptions);
public Mono<Map<String, Object>> getDocument(String key, List<String> selectedFields,
SearchRequestOptions searchRequestOptions) {
return restClient
.documents()
.getAsync(key, selectedFields, searchRequestOptions)
.map(DocumentResponseConversions::convertLinkedHashMapToMap);
}



@Override
public PagedFlux<SuggestResult> suggest(String searchText, String suggesterName) {
return null;
Expand Down Expand Up @@ -79,8 +86,8 @@ public Mono<AutocompleteResult> autocomplete(String searchText,
SearchRequestOptions searchRequestOptions,
AutocompleteParameters autocompleteParameters) {
return restClient.documents().autocompleteGetAsync(searchText,
suggesterName,
searchRequestOptions,
autocompleteParameters);
suggesterName,
searchRequestOptions,
autocompleteParameters);
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.azure.search.data.customization;

import com.azure.search.data.common.DocumentResponseConversions;
import com.azure.search.data.common.SearchPipelinePolicy;
import com.azure.search.data.SearchIndexClient;
import com.azure.search.data.generated.models.*;

import java.util.List;
import java.util.Map;

public class SearchIndexClientImpl extends SearchIndexBaseClientImpl implements SearchIndexClient {

Expand Down Expand Up @@ -42,13 +44,15 @@ public DocumentSearchResult search(String searchText, SearchParameters searchPar
}

@Override
public Object getDocument(String key) {
return null;
public Map<String, Object> getDocument(String key) {
return restClient.documents().getAsync(key)
.map(DocumentResponseConversions::convertLinkedHashMapToMap).block();
}

@Override
public Object getDocument(String key, List<String> selectedFields, SearchRequestOptions searchRequestOptions) {
return null;
public Map<String, Object> getDocument(String key, List<String> selectedFields, SearchRequestOptions searchRequestOptions) {
return restClient.documents().getAsync(key, selectedFields, searchRequestOptions)
.map(DocumentResponseConversions::convertLinkedHashMapToMap).block();
}

@Override
Expand Down

0 comments on commit 2d7d6c8

Please sign in to comment.