Bug fixes and refactoring#38
Merged
macohen merged 3 commits intoopensearch-project:mainfrom Dec 19, 2022
Merged
Conversation
msfroh
commented
Dec 2, 2022
src/main/java/org/opensearch/search/relevance/configuration/ConfigurationUtils.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/search/relevance/actionfilter/SearchActionFilter.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/search/relevance/actionfilter/SearchActionFilter.java
Show resolved
Hide resolved
src/main/java/org/opensearch/search/relevance/actionfilter/SearchActionFilter.java
Show resolved
Hide resolved
...ava/org/opensearch/search/relevance/configuration/ResultTransformerConfigurationFactory.java
Outdated
Show resolved
Hide resolved
noCharger
reviewed
Dec 14, 2022
Collaborator
There was a problem hiding this comment.
I guess setting class is more specific towards that transformer itself, whereas the configuration is the schema of the search workflow. There are two things I am not sure if we should put in this PR:
- Can I use multiple same reranker, with different setting and configuration?
- Do we want to provide more flexibility, such as one transformer depend on several other transformers.
...pensearch/search/relevance/transformer/kendraintelligentranking/client/KendraHttpClient.java
Show resolved
Hide resolved
...pensearch/search/relevance/transformer/kendraintelligentranking/client/KendraHttpClient.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/search/relevance/actionfilter/SearchActionFilter.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/search/relevance/actionfilter/SearchActionFilter.java
Outdated
Show resolved
Hide resolved
...pensearch/search/relevance/transformer/kendraintelligentranking/KendraIntelligentRanker.java
Outdated
Show resolved
Hide resolved
...pensearch/search/relevance/transformer/kendraintelligentranking/KendraIntelligentRanker.java
Show resolved
Hide resolved
...mer/kendraintelligentranking/configuration/KendraIntelligentRankingConfigurationFactory.java
Show resolved
Hide resolved
...ransformer/kendraintelligentranking/configuration/KendraIntelligentRankingConfiguration.java
Show resolved
Hide resolved
1. Shallow clone SearchResponse in SearchActionFilter. The only properties that we're currently changing are SearchHit and timeTookMillis. This is also less brittle as we don't try to implement deserialization ourselves. 2. KendraIntelligentRanker doesn't transform if the required client settings (endpoint + execution plan ID) are missing. 3. A lot of refactoring to prepare for other transformers. Where we previously had logic of the form `if kendra_intelligent_ranking then do Kendra intelligent ranking`, now the APIs support arbitrary named transformers. This required updates to tests and configuration code. 4. Added tests and fixes for SearchConfigurationExtBuilder. Signed-off-by: Michael Froh <froh@amazon.com>
Looking at the PR on GitHub, I spotted a few mistakes and possible improvements. Signed-off-by: Michael Froh <froh@amazon.com>
Signed-off-by: Michael Froh <froh@amazon.com>
2a40bd3 to
698f275
Compare
Codecov Report
@@ Coverage Diff @@
## main #38 +/- ##
============================================
+ Coverage 60.43% 65.52% +5.09%
- Complexity 155 172 +17
============================================
Files 29 29
Lines 867 879 +12
Branches 119 119
============================================
+ Hits 524 576 +52
+ Misses 304 254 -50
- Partials 39 49 +10
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
macohen
approved these changes
Dec 19, 2022
noCharger
reviewed
Dec 19, 2022
| objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); | ||
| serviceEndpoint = clientSettings.getServiceEndpoint(); | ||
| executionPlanId = clientSettings.getExecutionPlanId(); | ||
| if (isValid()) { |
Collaborator
There was a problem hiding this comment.
Non-blocking:
This is what I preferred:
if (!isValid()) {
amazonHttpClient = null;
aws4Signer = null;
awsCredentialsProvider = null;
errorHandler = null;
responseHandler = null;
return;
}
amazonHttpClient = AccessController.doPrivileged((PrivilegedAction<AmazonHttpClient>) () -> new AmazonHttpClient(new ClientConfiguration()));
errorHandler = new SimpleAwsErrorHandler();
responseHandler = new SimpleResponseHandler();
aws4Signer = new AWS4Signer();
aws4Signer.setServiceName(KENDRA_RANKING_SERVICE_NAME);
aws4Signer.setRegionName(clientSettings.getServiceRegion());
...
noCharger
approved these changes
Dec 19, 2022
Collaborator
noCharger
left a comment
There was a problem hiding this comment.
This is awesome! Approved with non-blocking comments.
Collaborator
|
We do want to review the full set of metrics and logging events to capture. We'll create another issue for that purpose. |
opensearch-trigger-bot bot
pushed a commit
that referenced
this pull request
Jan 3, 2023
* Bug fixes and refactoring 1. Shallow clone SearchResponse in SearchActionFilter. The only properties that we're currently changing are SearchHit and timeTookMillis. This is also less brittle as we don't try to implement deserialization ourselves. 2. KendraIntelligentRanker doesn't transform if the required client settings (endpoint + execution plan ID) are missing. 3. A lot of refactoring to prepare for other transformers. Where we previously had logic of the form `if kendra_intelligent_ranking then do Kendra intelligent ranking`, now the APIs support arbitrary named transformers. This required updates to tests and configuration code. 4. Added tests and fixes for SearchConfigurationExtBuilder. Signed-off-by: Michael Froh <froh@amazon.com> * Address PR comments from myself Looking at the PR on GitHub, I spotted a few mistakes and possible improvements. Signed-off-by: Michael Froh <froh@amazon.com> * Address comments by noCharger Signed-off-by: Michael Froh <froh@amazon.com> Signed-off-by: Michael Froh <froh@amazon.com> (cherry picked from commit d8ba75b)
noCharger
pushed a commit
that referenced
this pull request
Jan 3, 2023
* Bug fixes and refactoring 1. Shallow clone SearchResponse in SearchActionFilter. The only properties that we're currently changing are SearchHit and timeTookMillis. This is also less brittle as we don't try to implement deserialization ourselves. 2. KendraIntelligentRanker doesn't transform if the required client settings (endpoint + execution plan ID) are missing. 3. A lot of refactoring to prepare for other transformers. Where we previously had logic of the form `if kendra_intelligent_ranking then do Kendra intelligent ranking`, now the APIs support arbitrary named transformers. This required updates to tests and configuration code. 4. Added tests and fixes for SearchConfigurationExtBuilder. Signed-off-by: Michael Froh <froh@amazon.com> * Address PR comments from myself Looking at the PR on GitHub, I spotted a few mistakes and possible improvements. Signed-off-by: Michael Froh <froh@amazon.com> * Address comments by noCharger Signed-off-by: Michael Froh <froh@amazon.com> Signed-off-by: Michael Froh <froh@amazon.com> (cherry picked from commit d8ba75b) Co-authored-by: msfroh <froh@amazon.com>
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
if kendra_intelligent_ranking then do Kendra intelligent ranking, now the APIs support arbitrary named transformers. This required updates to tests and configuration code.Signed-off-by: Michael Froh froh@amazon.com
Description
See commit message above.
Issues Resolved
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.