diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..91f04eb
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,33 @@
+# This workflow will build a Java project with Gradle
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
+
+name: Run CI tests with Gradle
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java:
+ - 11
+ - 17
+ # We need 2.12.0 at minimum for JDK 21.0.2
+ - 21.0.1
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup Java ${{ matrix.java }}
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ distribution: 'temurin'
+
+ - name: Grant execute permission for gradlew
+ run: chmod +x gradlew
+ - name: Build with Gradle
+ run: ./gradlew -Dtests.security.manager=false clean test
diff --git a/.gitignore b/.gitignore
index 60ba3ea..85a4b53 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,13 @@
-build/
-target/
-*.zip
+# Ignore Gradle project-specific cache directory
+.gradle
+# Ignore Gradle build output directory
+build
+
+# intellij files
+.idea/
+*.iml
+*.ipr
+*.iws
+build-idea/
+out/
\ No newline at end of file
diff --git a/search-relevance-plugin/Dockerfile b/Dockerfile
similarity index 100%
rename from search-relevance-plugin/Dockerfile
rename to Dockerfile
diff --git a/search-relevance-plugin/LICENSE b/LICENSE
similarity index 100%
rename from search-relevance-plugin/LICENSE
rename to LICENSE
diff --git a/search-relevance-plugin/NOTICE.txt b/NOTICE.txt
similarity index 100%
rename from search-relevance-plugin/NOTICE.txt
rename to NOTICE.txt
diff --git a/README.md b/README.md
index 09e4b57..3541af6 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,31 @@
-# OpenSearch Relevance
+# search-relevance-plugin
-Playground and sandbox for the OpenSearch relevance work.
+Build the plugin. Note that you will have to match up the JDK 11 on your system to java home in the `gradle.properties` file:
+
+`./gradlew build`
+
+Build the OpenSearch docker image and add the plugin:
+
+`docker compose build`
+
+Start the containers:
+
+`docker compose up`
+
+Initialize the `awesome` search relevance index:
+
+```
+curl -X PUT http://localhost:9200/_plugins/search_relevance/awesome
+```
+
+Send an event to the `awesome` store:
+
+```
+curl -X POST http://localhost:9200/_plugins/search_relevance/awesome -H "Content-Type: application/json" -d @instant-search.json
+```
+
+Get events:
+
+```
+curl http://localhost:9200/.awesome_events/_search
+```
diff --git a/search-relevance-plugin/build.gradle b/build.gradle
similarity index 100%
rename from search-relevance-plugin/build.gradle
rename to build.gradle
diff --git a/dashboard-plugin/Dockerfile b/dashboard-plugin/Dockerfile
deleted file mode 100644
index 37de088..0000000
--- a/dashboard-plugin/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM opensearchproject/opensearch-dashboards:2.11.1
-
-# Disable security.
-RUN /usr/share/opensearch-dashboards/bin/opensearch-dashboards-plugin remove securityDashboards
-COPY --chown=opensearch-dashboards:opensearch-dashboards opensearch_dashboards.yml /usr/share/opensearch-dashboards/config/
-
-# TODO: Add the plugin.
diff --git a/dashboard-plugin/README.md b/dashboard-plugin/README.md
deleted file mode 100755
index 7b4573d..0000000
--- a/dashboard-plugin/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# ublDashboard
-
-A OpenSearch Dashboards plugin
-
----
-
-## Development
-
-See the [OpenSearch Dashboards contributing
-guide](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/CONTRIBUTING.md) for instructions
-setting up your development environment.
-
- ## Scripts
-
- yarn osd bootstrap
- - Execute this to install node_modules and setup the dependencies in your plugin and in OpenSearch Dashboards
-
-
- yarn plugin-helpers build
- - Execute this to create a distributable version of this plugin that can be installed in OpenSearch Dashboards
-
-
-
-
-
----
-
-https://opensearch.org/blog/dashboards-plugins-intro/
-
-https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/CONTRIBUTING.md#development-environment-setup
-
-https://github.com/opensearch-project/OpenSearch-Dashboards/blob/main/DEVELOPER_GUIDE.md
-
-git clone https://github.com/opensearch-project/OpenSearch-Dashboards.git
-
-cd OpenSearch-Dashboards
-
-node scripts/generate_plugin.js my_plugin_name
-
-
-```
-nvm use 18.19.0
-
-yarn start
-```
\ No newline at end of file
diff --git a/dashboard-plugin/build/ublDashboard-2.11.1.zip b/dashboard-plugin/build/ublDashboard-2.11.1.zip
deleted file mode 100644
index e45c2f2..0000000
Binary files a/dashboard-plugin/build/ublDashboard-2.11.1.zip and /dev/null differ
diff --git a/dashboard-plugin/common/index.ts b/dashboard-plugin/common/index.ts
deleted file mode 100644
index b551179..0000000
--- a/dashboard-plugin/common/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export const PLUGIN_ID = 'ublDashboard';
-export const PLUGIN_NAME = 'ublDashboard';
diff --git a/dashboard-plugin/opensearch_dashboards.json b/dashboard-plugin/opensearch_dashboards.json
deleted file mode 100644
index 06d21b1..0000000
--- a/dashboard-plugin/opensearch_dashboards.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "ublDashboard",
- "version": "1.0.0",
- "opensearchDashboardsVersion": "opensearchDashboards",
- "server": true,
- "ui": true,
- "requiredPlugins": ["navigation"],
- "optionalPlugins": []
-}
diff --git a/dashboard-plugin/opensearch_dashboards.yml b/dashboard-plugin/opensearch_dashboards.yml
deleted file mode 100644
index 65c9cda..0000000
--- a/dashboard-plugin/opensearch_dashboards.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-server.name: opensearch-dashboards
-server.host: "0.0.0.0"
diff --git a/dashboard-plugin/package.json b/dashboard-plugin/package.json
deleted file mode 100644
index 7e6109b..0000000
--- a/dashboard-plugin/package.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "ublDashboard",
- "version": "0.0.0",
- "private": true,
- "scripts": {
- "build": "yarn plugin-helpers build",
- "plugin-helpers": "../../scripts/use_node ../../scripts/plugin_helpers",
- "osd": "../../scripts/use_node ../../scripts/osd"
- }
-}
diff --git a/dashboard-plugin/public/application.tsx b/dashboard-plugin/public/application.tsx
deleted file mode 100644
index a467470..0000000
--- a/dashboard-plugin/public/application.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import React from 'react';
-import ReactDOM from 'react-dom';
-import { AppMountParameters, CoreStart } from '../../../src/core/public';
-import { AppPluginStartDependencies } from './types';
-import { UblDashboardApp } from './components/app';
-
-export const renderApp = (
- { notifications, http }: CoreStart,
- { navigation }: AppPluginStartDependencies,
- { appBasePath, element }: AppMountParameters
-) => {
- ReactDOM.render(
- ,
- element
- );
-
- return () => ReactDOM.unmountComponentAtNode(element);
-};
diff --git a/dashboard-plugin/public/components/app.tsx b/dashboard-plugin/public/components/app.tsx
deleted file mode 100644
index e07aa77..0000000
--- a/dashboard-plugin/public/components/app.tsx
+++ /dev/null
@@ -1,116 +0,0 @@
-import React, { useState } from 'react';
-import { i18n } from '@osd/i18n';
-import { FormattedMessage, I18nProvider } from '@osd/i18n/react';
-import { BrowserRouter as Router } from 'react-router-dom';
-
-import {
- EuiButton,
- EuiHorizontalRule,
- EuiPage,
- EuiPageBody,
- EuiPageContent,
- EuiPageContentBody,
- EuiPageContentHeader,
- EuiPageHeader,
- EuiTitle,
- EuiText,
-} from '@elastic/eui';
-
-import { CoreStart } from '../../../../src/core/public';
-import { NavigationPublicPluginStart } from '../../../../src/plugins/navigation/public';
-
-import { PLUGIN_ID, PLUGIN_NAME } from '../../common';
-
-interface UblDashboardAppDeps {
- basename: string;
- notifications: CoreStart['notifications'];
- http: CoreStart['http'];
- navigation: NavigationPublicPluginStart;
-}
-
-export const UblDashboardApp = ({
- basename,
- notifications,
- http,
- navigation,
-}: UblDashboardAppDeps) => {
- // Use React hooks to manage state.
- const [timestamp, setTimestamp] = useState();
-
- const onClickHandler = () => {
- // Use the core http service to make a response to the server API.
- http.get('/api/ubl_dashboard/example').then((res) => {
- setTimestamp(res.time);
- // Use the core notifications service to display a success message.
- notifications.toasts.addSuccess(
- i18n.translate('ublDashboard.dataUpdated', {
- defaultMessage: 'Data updated',
- })
- );
- });
- };
-
- // Render the application DOM.
- // Note that `navigation.ui.TopNavMenu` is a stateful component exported on the `navigation` plugin's start contract.
- return (
-
-
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
-
-
- );
-};
diff --git a/dashboard-plugin/public/index.scss b/dashboard-plugin/public/index.scss
deleted file mode 100644
index ff71124..0000000
--- a/dashboard-plugin/public/index.scss
+++ /dev/null
@@ -1 +0,0 @@
-/* stylelint-disable no-empty-source */
diff --git a/dashboard-plugin/public/index.ts b/dashboard-plugin/public/index.ts
deleted file mode 100644
index da10ad3..0000000
--- a/dashboard-plugin/public/index.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import './index.scss';
-
-import { UblDashboardPlugin } from './plugin';
-
-// This exports static code and TypeScript types,
-// as well as, OpenSearch Dashboards Platform `plugin()` initializer.
-export function plugin() {
- return new UblDashboardPlugin();
-}
-export { UblDashboardPluginSetup, UblDashboardPluginStart } from './types';
diff --git a/dashboard-plugin/public/plugin.ts b/dashboard-plugin/public/plugin.ts
deleted file mode 100644
index afc2073..0000000
--- a/dashboard-plugin/public/plugin.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { i18n } from '@osd/i18n';
-import { AppMountParameters, CoreSetup, CoreStart, Plugin } from '../../../src/core/public';
-import {
- UblDashboardPluginSetup,
- UblDashboardPluginStart,
- AppPluginStartDependencies,
-} from './types';
-import { PLUGIN_NAME } from '../common';
-
-export class UblDashboardPlugin
- implements Plugin {
- public setup(core: CoreSetup): UblDashboardPluginSetup {
- // Register an application into the side navigation menu
- core.application.register({
- id: 'ublDashboard',
- title: PLUGIN_NAME,
- async mount(params: AppMountParameters) {
- // Load application bundle
- const { renderApp } = await import('./application');
- // Get start services as specified in opensearch_dashboards.json
- const [coreStart, depsStart] = await core.getStartServices();
- // Render the application
- return renderApp(coreStart, depsStart as AppPluginStartDependencies, params);
- },
- });
-
- // Return methods that should be available to other plugins
- return {
- getGreeting() {
- return i18n.translate('ublDashboard.greetingText', {
- defaultMessage: 'Hello from {name}!',
- values: {
- name: PLUGIN_NAME,
- },
- });
- },
- };
- }
-
- public start(core: CoreStart): UblDashboardPluginStart {
- return {};
- }
-
- public stop() {}
-}
diff --git a/dashboard-plugin/public/types.ts b/dashboard-plugin/public/types.ts
deleted file mode 100644
index c5c5900..0000000
--- a/dashboard-plugin/public/types.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { NavigationPublicPluginStart } from '../../../src/plugins/navigation/public';
-
-export interface UblDashboardPluginSetup {
- getGreeting: () => string;
-}
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface UblDashboardPluginStart {}
-
-export interface AppPluginStartDependencies {
- navigation: NavigationPublicPluginStart;
-}
diff --git a/dashboard-plugin/server/index.ts b/dashboard-plugin/server/index.ts
deleted file mode 100644
index 2d602bf..0000000
--- a/dashboard-plugin/server/index.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { PluginInitializerContext } from '../../../src/core/server';
-import { UblDashboardPlugin } from './plugin';
-
-// This exports static code and TypeScript types,
-// as well as, OpenSearch Dashboards Platform `plugin()` initializer.
-
-export function plugin(initializerContext: PluginInitializerContext) {
- return new UblDashboardPlugin(initializerContext);
-}
-
-export { UblDashboardPluginSetup, UblDashboardPluginStart } from './types';
diff --git a/dashboard-plugin/server/plugin.ts b/dashboard-plugin/server/plugin.ts
deleted file mode 100644
index 05bb60a..0000000
--- a/dashboard-plugin/server/plugin.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import {
- PluginInitializerContext,
- CoreSetup,
- CoreStart,
- Plugin,
- Logger,
-} from '../../../src/core/server';
-
-import { UblDashboardPluginSetup, UblDashboardPluginStart } from './types';
-import { defineRoutes } from './routes';
-
-export class UblDashboardPlugin
- implements Plugin {
- private readonly logger: Logger;
-
- constructor(initializerContext: PluginInitializerContext) {
- this.logger = initializerContext.logger.get();
- }
-
- public setup(core: CoreSetup) {
- this.logger.debug('ublDashboard: Setup');
- const router = core.http.createRouter();
-
- // Register server side APIs
- defineRoutes(router);
-
- return {};
- }
-
- public start(core: CoreStart) {
- this.logger.debug('ublDashboard: Started');
- return {};
- }
-
- public stop() {}
-}
diff --git a/dashboard-plugin/server/routes/index.ts b/dashboard-plugin/server/routes/index.ts
deleted file mode 100644
index 268ebc1..0000000
--- a/dashboard-plugin/server/routes/index.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { IRouter } from '../../../../src/core/server';
-
-export function defineRoutes(router: IRouter) {
- router.get(
- {
- path: '/api/ubl_dashboard/example',
- validate: false,
- },
- async (context, request, response) => {
- return response.ok({
- body: {
- time: new Date().toISOString(),
- },
- });
- }
- );
-}
diff --git a/dashboard-plugin/server/types.ts b/dashboard-plugin/server/types.ts
deleted file mode 100644
index 8fc57c1..0000000
--- a/dashboard-plugin/server/types.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface UblDashboardPluginSetup {}
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface UblDashboardPluginStart {}
diff --git a/dashboard-plugin/translations/ja-JP.json b/dashboard-plugin/translations/ja-JP.json
deleted file mode 100644
index 75a4954..0000000
--- a/dashboard-plugin/translations/ja-JP.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "formats": {
- "number": {
- "currency": {
- "style": "currency"
- },
- "percent": {
- "style": "percent"
- }
- },
- "date": {
- "short": {
- "month": "numeric",
- "day": "numeric",
- "year": "2-digit"
- },
- "medium": {
- "month": "short",
- "day": "numeric",
- "year": "numeric"
- },
- "long": {
- "month": "long",
- "day": "numeric",
- "year": "numeric"
- },
- "full": {
- "weekday": "long",
- "month": "long",
- "day": "numeric",
- "year": "numeric"
- }
- },
- "time": {
- "short": {
- "hour": "numeric",
- "minute": "numeric"
- },
- "medium": {
- "hour": "numeric",
- "minute": "numeric",
- "second": "numeric"
- },
- "long": {
- "hour": "numeric",
- "minute": "numeric",
- "second": "numeric",
- "timeZoneName": "short"
- },
- "full": {
- "hour": "numeric",
- "minute": "numeric",
- "second": "numeric",
- "timeZoneName": "short"
- }
- },
- "relative": {
- "years": {
- "units": "year"
- },
- "months": {
- "units": "month"
- },
- "days": {
- "units": "day"
- },
- "hours": {
- "units": "hour"
- },
- "minutes": {
- "units": "minute"
- },
- "seconds": {
- "units": "second"
- }
- }
- },
- "messages": {
- "ublDashboard.buttonText": "Translate me to Japanese"
- }
-}
diff --git a/dashboard-plugin/tsconfig.json b/dashboard-plugin/tsconfig.json
deleted file mode 100644
index 7fa0373..0000000
--- a/dashboard-plugin/tsconfig.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "outDir": "./target",
- "skipLibCheck": true
- },
- "include": [
- "index.ts",
- "common/**/*.ts",
- "public/**/*.ts",
- "public/**/*.tsx",
- "server/**/*.ts",
- "../../typings/**/*"
- ],
- "exclude": []
-}
diff --git a/docker-compose.yaml b/docker-compose.yaml
index db677fb..820eab2 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -2,7 +2,7 @@ version: '3'
services:
opensearch:
- build: ./search-relevance-plugin/
+ build: ./
container_name: opensearch
environment:
discovery.type: single-node
diff --git a/search-relevance-plugin/example-events.json b/example-events.json
similarity index 100%
rename from search-relevance-plugin/example-events.json
rename to example-events.json
diff --git a/search-relevance-plugin/gradle.properties b/gradle.properties
similarity index 100%
rename from search-relevance-plugin/gradle.properties
rename to gradle.properties
diff --git a/search-relevance-plugin/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from search-relevance-plugin/gradle/wrapper/gradle-wrapper.jar
rename to gradle/wrapper/gradle-wrapper.jar
diff --git a/search-relevance-plugin/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from search-relevance-plugin/gradle/wrapper/gradle-wrapper.properties
rename to gradle/wrapper/gradle-wrapper.properties
diff --git a/search-relevance-plugin/gradlew b/gradlew
similarity index 100%
rename from search-relevance-plugin/gradlew
rename to gradlew
diff --git a/search-relevance-plugin/gradlew.bat b/gradlew.bat
similarity index 100%
rename from search-relevance-plugin/gradlew.bat
rename to gradlew.bat
diff --git a/search-relevance-plugin/install-plugin.sh b/install-plugin.sh
similarity index 100%
rename from search-relevance-plugin/install-plugin.sh
rename to install-plugin.sh
diff --git a/search-relevance-plugin/instant-search.json b/instant-search.json
similarity index 100%
rename from search-relevance-plugin/instant-search.json
rename to instant-search.json
diff --git a/search-relevance-plugin/.gitignore b/search-relevance-plugin/.gitignore
deleted file mode 100644
index 85a4b53..0000000
--- a/search-relevance-plugin/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-# Ignore Gradle project-specific cache directory
-.gradle
-
-# Ignore Gradle build output directory
-build
-
-# intellij files
-.idea/
-*.iml
-*.ipr
-*.iws
-build-idea/
-out/
\ No newline at end of file
diff --git a/search-relevance-plugin/README.md b/search-relevance-plugin/README.md
deleted file mode 100644
index 3541af6..0000000
--- a/search-relevance-plugin/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# search-relevance-plugin
-
-Build the plugin. Note that you will have to match up the JDK 11 on your system to java home in the `gradle.properties` file:
-
-`./gradlew build`
-
-Build the OpenSearch docker image and add the plugin:
-
-`docker compose build`
-
-Start the containers:
-
-`docker compose up`
-
-Initialize the `awesome` search relevance index:
-
-```
-curl -X PUT http://localhost:9200/_plugins/search_relevance/awesome
-```
-
-Send an event to the `awesome` store:
-
-```
-curl -X POST http://localhost:9200/_plugins/search_relevance/awesome -H "Content-Type: application/json" -d @instant-search.json
-```
-
-Get events:
-
-```
-curl http://localhost:9200/.awesome_events/_search
-```
diff --git a/search-relevance-plugin/search.sh b/search.sh
similarity index 100%
rename from search-relevance-plugin/search.sh
rename to search.sh
diff --git a/search-relevance-plugin/settings.gradle b/settings.gradle
similarity index 100%
rename from search-relevance-plugin/settings.gradle
rename to settings.gradle
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/SearchRelevancePlugin.java b/src/main/java/org/opensearch/relevance/SearchRelevancePlugin.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/SearchRelevancePlugin.java
rename to src/main/java/org/opensearch/relevance/SearchRelevancePlugin.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/SettingsConstants.java b/src/main/java/org/opensearch/relevance/SettingsConstants.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/SettingsConstants.java
rename to src/main/java/org/opensearch/relevance/SettingsConstants.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/action/SearchRelevanceRestHandler.java b/src/main/java/org/opensearch/relevance/action/SearchRelevanceRestHandler.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/action/SearchRelevanceRestHandler.java
rename to src/main/java/org/opensearch/relevance/action/SearchRelevanceRestHandler.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/action/SearchRelevanceSearchFilter.java b/src/main/java/org/opensearch/relevance/action/SearchRelevanceSearchFilter.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/action/SearchRelevanceSearchFilter.java
rename to src/main/java/org/opensearch/relevance/action/SearchRelevanceSearchFilter.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/backends/Backend.java b/src/main/java/org/opensearch/relevance/backends/Backend.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/backends/Backend.java
rename to src/main/java/org/opensearch/relevance/backends/Backend.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/backends/OpenSearchBackend.java b/src/main/java/org/opensearch/relevance/backends/OpenSearchBackend.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/backends/OpenSearchBackend.java
rename to src/main/java/org/opensearch/relevance/backends/OpenSearchBackend.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/events/EventManager.java b/src/main/java/org/opensearch/relevance/events/EventManager.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/events/EventManager.java
rename to src/main/java/org/opensearch/relevance/events/EventManager.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/events/queues/EventQueue.java b/src/main/java/org/opensearch/relevance/events/queues/EventQueue.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/events/queues/EventQueue.java
rename to src/main/java/org/opensearch/relevance/events/queues/EventQueue.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/events/queues/InternalQueue.java b/src/main/java/org/opensearch/relevance/events/queues/InternalQueue.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/events/queues/InternalQueue.java
rename to src/main/java/org/opensearch/relevance/events/queues/InternalQueue.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/model/QueryRequest.java b/src/main/java/org/opensearch/relevance/model/QueryRequest.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/model/QueryRequest.java
rename to src/main/java/org/opensearch/relevance/model/QueryRequest.java
diff --git a/search-relevance-plugin/src/main/java/org/opensearch/relevance/model/QueryResponse.java b/src/main/java/org/opensearch/relevance/model/QueryResponse.java
similarity index 100%
rename from search-relevance-plugin/src/main/java/org/opensearch/relevance/model/QueryResponse.java
rename to src/main/java/org/opensearch/relevance/model/QueryResponse.java
diff --git a/search-relevance-plugin/src/main/resources/org/opensearch/relevance/backends/events-mapping.json b/src/main/resources/org/opensearch/relevance/backends/events-mapping.json
similarity index 100%
rename from search-relevance-plugin/src/main/resources/org/opensearch/relevance/backends/events-mapping.json
rename to src/main/resources/org/opensearch/relevance/backends/events-mapping.json
diff --git a/search-relevance-plugin/src/main/resources/org/opensearch/relevance/backends/queries-mapping.json b/src/main/resources/org/opensearch/relevance/backends/queries-mapping.json
similarity index 100%
rename from search-relevance-plugin/src/main/resources/org/opensearch/relevance/backends/queries-mapping.json
rename to src/main/resources/org/opensearch/relevance/backends/queries-mapping.json
diff --git a/search-relevance-plugin/src/yamlRestTest/java/org/opensearch/rest/action/SearchRelevanceClientYamlTestSuiteIT.java b/src/yamlRestTest/java/org/opensearch/rest/action/SearchRelevanceClientYamlTestSuiteIT.java
similarity index 100%
rename from search-relevance-plugin/src/yamlRestTest/java/org/opensearch/rest/action/SearchRelevanceClientYamlTestSuiteIT.java
rename to src/yamlRestTest/java/org/opensearch/rest/action/SearchRelevanceClientYamlTestSuiteIT.java
diff --git a/search-relevance-plugin/src/yamlRestTest/resources/rest-api-spec/api/_plugins.search_relevance.json b/src/yamlRestTest/resources/rest-api-spec/api/_plugins.search_relevance.json
similarity index 100%
rename from search-relevance-plugin/src/yamlRestTest/resources/rest-api-spec/api/_plugins.search_relevance.json
rename to src/yamlRestTest/resources/rest-api-spec/api/_plugins.search_relevance.json
diff --git a/search-relevance-plugin/src/yamlRestTest/resources/rest-api-spec/test/_plugins.search_relevance/10_basic.yml b/src/yamlRestTest/resources/rest-api-spec/test/_plugins.search_relevance/10_basic.yml
similarity index 100%
rename from search-relevance-plugin/src/yamlRestTest/resources/rest-api-spec/test/_plugins.search_relevance/10_basic.yml
rename to src/yamlRestTest/resources/rest-api-spec/test/_plugins.search_relevance/10_basic.yml