Skip to content

Commit

Permalink
synonym_analyzer configuration setting
Browse files Browse the repository at this point in the history
Signed-off-by: Prudhvi Godithi <[email protected]>
  • Loading branch information
prudhvigodithi committed Nov 3, 2024
1 parent 2b75b4d commit db57995
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 18 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Add Setting to adjust the primary constraint weights ([#16471](https://github.com/opensearch-project/OpenSearch/pull/16471))
- Switch from `buildSrc/version.properties` to Gradle version catalog (`gradle/libs.versions.toml`) to enable dependabot to perform automated upgrades on common libs ([#16284](https://github.com/opensearch-project/OpenSearch/pull/16284))
- Add dynamic setting allowing size > 0 requests to be cached in the request cache ([#16483](https://github.com/opensearch-project/OpenSearch/pull/16483/files))
- Add new configuration setting `synonym_analyzer`, to the `synonym` and `synonym_graph` filters, enabling the specification of a custom analyzer for reading the synonym file ([#16488](https://github.com/opensearch-project/OpenSearch/pull/16488)).

### Dependencies
- Bump `com.azure:azure-storage-common` from 12.25.1 to 12.27.1 ([#16521](https://github.com/opensearch-project/OpenSearch/pull/16521))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1216,18 +1216,14 @@ private void createConfiguration() {
);

final List<Path> configFiles;
try (Stream<Path> stream = Files.walk(getDistroDir().resolve("config"))) {
try (Stream<Path> stream = Files.list(getDistroDir().resolve("config"))) {
configFiles = stream.collect(Collectors.toList());
}
logToProcessStdout("Copying additional config files from distro " + configFiles);
for (Path file : configFiles) {
Path relativePath = getDistroDir().resolve("config").relativize(file);
Path dest = configFile.getParent().resolve(relativePath);
if (Files.isDirectory(file)) {
Files.createDirectories(dest);
} else {
Files.createDirectories(dest.getParent());
Files.copy(file, dest, StandardCopyOption.REPLACE_EXISTING);
Path dest = configFile.getParent().resolve(file.getFileName());
if (Files.exists(dest) == false) {
Files.copy(file, dest);
}
}
} catch (IOException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ public void testGetTokenFiltersWithAnalysisModule() {
}

/**
* Tests that synonym-related token filters are only available when an AnalysisModule is provided.
* Tests that synonym-related token filters are available when an AnalysisModule is provided.
* This test verifies that:
* 1. Base getTokenFilters() does not include synonym filters
* 2. Extended getTokenFilters(AnalysisModule) includes synonym filters
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,6 @@ public void testTokenFiltersBypassSynonymAnalysis() throws IOException {
.build();
IndexSettings idxSettings = IndexSettingsModule.newIndexSettings("index", settings);
Environment environment = TestEnvironment.newEnvironment(settings);

// Initialize analysis registry
AnalysisModule module = new AnalysisModule(environment, Collections.singletonList(new CommonAnalysisModulePlugin()));
AnalysisRegistry analysisRegistry = module.getAnalysisRegistry();
String[] bypassingFactories = new String[] { "dictionary_decompounder" };
Expand Down Expand Up @@ -330,8 +328,6 @@ public void testDisallowedTokenFilters() throws IOException {

Environment environment = TestEnvironment.newEnvironment(settings);
IndexSettings idxSettings = IndexSettingsModule.newIndexSettings("index", settings);

// Create analysis module
AnalysisModule analysisModule = new AnalysisModule(environment, Collections.singletonList(new CommonAnalysisModulePlugin()));
AnalysisRegistry analysisRegistry = analysisModule.getAnalysisRegistry();
CommonAnalysisModulePlugin plugin = new CommonAnalysisModulePlugin();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ default Map<String, AnalysisProvider<CharFilterFactory>> getCharFilters() {

/**
* Override to add additional {@link TokenFilter}s that need access to the AnalysisModule.
* The default implementation calls the existing getTokenFilters() method for backward compatibility.
* The default implementation for plugins that don't need AnalysisModule calls the existing getTokenFilters() method.
*/
default Map<String, AnalysisProvider<TokenFilterFactory>> getTokenFilters(AnalysisModule analysisModule) {
return getTokenFilters();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -526,10 +526,7 @@ public boolean incrementToken() throws IOException {

/**
* Tests registration and functionality of token filters that require access to the AnalysisModule.
* This test verifies:
* 1. Token filter registration using the extended getTokenFilters(AnalysisModule) method
* 2. Filter functionality in both predefined and custom analyzers
* 3. Proper access to AnalysisModule reference within filter factory creation
* This test verifies the token filter registration using the extended getTokenFilters(AnalysisModule) method
*/
public void testTokenFilterRegistrationWithModuleReference() throws IOException {
class TestPlugin implements AnalysisPlugin {
Expand Down

0 comments on commit db57995

Please sign in to comment.