diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Common.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Common.yml
new file mode 100644
index 0000000..5aaef07
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Common.yml
@@ -0,0 +1,104 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Analysis.Common'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Analysis.Common/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Analysis.Common/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml
new file mode 100644
index 0000000..5c3dc42
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml
@@ -0,0 +1,105 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Analysis.Kuromoji'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Analysis.Kuromoji/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Analysis.Kuromoji/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Analysis.Kuromoji/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Analysis.Kuromoji/Lucene.Net.Tests.Analysis.Kuromoji.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml
new file mode 100644
index 0000000..17e94b6
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml
@@ -0,0 +1,105 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Analysis.Morfologik'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Analysis.Morfologik/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Analysis.Morfologik/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Analysis.Morfologik/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Analysis.Morfologik/Lucene.Net.Tests.Analysis.Morfologik.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-OpenNLP.yml b/.github/workflows/Lucene-Net-Tests-Analysis-OpenNLP.yml
new file mode 100644
index 0000000..98a5a0c
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-OpenNLP.yml
@@ -0,0 +1,109 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Analysis.OpenNLP'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Analysis.OpenNLP/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Analysis.OpenNLP/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Memory/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Highlighter/**/*'
+    - 'src/dotnet/Lucene.Net.ICU/**/*'
+    - 'src/Lucene.Net.Analysis.OpenNLP/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Analysis.OpenNLP/Lucene.Net.Tests.Analysis.OpenNLP.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Phonetic.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Phonetic.yml
new file mode 100644
index 0000000..63263ca
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Phonetic.yml
@@ -0,0 +1,105 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Analysis.Phonetic'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Analysis.Phonetic/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Analysis.Phonetic/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Analysis.Phonetic/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Analysis.Phonetic/Lucene.Net.Tests.Analysis.Phonetic.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-SmartCn.yml b/.github/workflows/Lucene-Net-Tests-Analysis-SmartCn.yml
new file mode 100644
index 0000000..e3fad2d
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-SmartCn.yml
@@ -0,0 +1,109 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Analysis.SmartCn'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Analysis.SmartCn/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Analysis.SmartCn/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Memory/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Highlighter/**/*'
+    - 'src/dotnet/Lucene.Net.ICU/**/*'
+    - 'src/Lucene.Net.Analysis.SmartCn/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Analysis.SmartCn/Lucene.Net.Tests.Analysis.SmartCn.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Stempel.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Stempel.yml
new file mode 100644
index 0000000..73267b0
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Stempel.yml
@@ -0,0 +1,105 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Analysis.Stempel'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Analysis.Stempel/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Analysis.Stempel/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Analysis.Stempel/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Analysis.Stempel/Lucene.Net.Tests.Analysis.Stempel.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Benchmark.yml b/.github/workflows/Lucene-Net-Tests-Benchmark.yml
new file mode 100644
index 0000000..872644e
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Benchmark.yml
@@ -0,0 +1,115 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Benchmark'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Benchmark/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Benchmark/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Memory/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Highlighter/**/*'
+    - 'src/dotnet/Lucene.Net.ICU/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.Spatial/**/*'
+    - 'src/Lucene.Net.Benchmark/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Benchmark/Lucene.Net.Tests.Benchmark.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Classification.yml b/.github/workflows/Lucene-Net-Tests-Classification.yml
new file mode 100644
index 0000000..80f4533
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Classification.yml
@@ -0,0 +1,106 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Classification'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Classification/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Classification/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Classification/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Classification/Lucene.Net.Tests.Classification.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Cli.yml b/.github/workflows/Lucene-Net-Tests-Cli.yml
new file mode 100644
index 0000000..4c96c79
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Cli.yml
@@ -0,0 +1,123 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Cli'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/dotnet/tools/Lucene.Net.Tests.Cli/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/dotnet/tools/Lucene.Net.Tests.Cli/Directory.Build.*'
+    - 'src/dotnet/tools/Directory.Build.*'
+    - 'src/dotnet/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Analysis.Kuromoji/**/*'
+    - 'src/Lucene.Net.Analysis.Stempel/**/*'
+    - 'src/Lucene.Net.Memory/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Highlighter/**/*'
+    - 'src/dotnet/Lucene.Net.ICU/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.Spatial/**/*'
+    - 'src/Lucene.Net.Benchmark/**/*'
+    - 'src/Lucene.Net.Expressions/**/*'
+    - 'src/Lucene.Net.Demo/**/*'
+    - 'src/Lucene.Net.Misc/**/*'
+    - 'src/dotnet/tools/lucene-cli/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [netcoreapp3.1]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/dotnet/tools/Lucene.Net.Tests.Cli/Lucene.Net.Tests.Cli.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-CodeAnalysis.yml b/.github/workflows/Lucene-Net-Tests-CodeAnalysis.yml
new file mode 100644
index 0000000..a7fd8e1
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-CodeAnalysis.yml
@@ -0,0 +1,104 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.CodeAnalysis'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/dotnet/Lucene.Net.Tests.CodeAnalysis/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/dotnet/Lucene.Net.Tests.CodeAnalysis/Directory.Build.*'
+    - 'src/dotnet/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/dotnet/Lucene.Net.CodeAnalysis.CSharp/**/*'
+    - 'src/dotnet/Lucene.Net.CodeAnalysis.VisualBasic/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/dotnet/Lucene.Net.Tests.CodeAnalysis/Lucene.Net.Tests.CodeAnalysis.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Codecs.yml b/.github/workflows/Lucene-Net-Tests-Codecs.yml
new file mode 100644
index 0000000..e993b74
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Codecs.yml
@@ -0,0 +1,104 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Codecs'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Codecs/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Codecs/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Codecs/Lucene.Net.Tests.Codecs.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Demo.yml b/.github/workflows/Lucene-Net-Tests-Demo.yml
new file mode 100644
index 0000000..4f43f2b
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Demo.yml
@@ -0,0 +1,112 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Demo'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Demo/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Demo/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Expressions/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.Demo/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Demo/Lucene.Net.Tests.Demo.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Expressions.yml b/.github/workflows/Lucene-Net-Tests-Expressions.yml
new file mode 100644
index 0000000..d71b444
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Expressions.yml
@@ -0,0 +1,106 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Expressions'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Expressions/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Expressions/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Expressions/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Expressions/Lucene.Net.Tests.Expressions.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Facet.yml b/.github/workflows/Lucene-Net-Tests-Facet.yml
new file mode 100644
index 0000000..fd8f315
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Facet.yml
@@ -0,0 +1,108 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Facet'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Facet/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Facet/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Facet/Lucene.Net.Tests.Facet.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Grouping.yml b/.github/workflows/Lucene-Net-Tests-Grouping.yml
new file mode 100644
index 0000000..12fe470
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Grouping.yml
@@ -0,0 +1,106 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Grouping'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Grouping/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Grouping/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Grouping/Lucene.Net.Tests.Grouping.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Highlighter.yml b/.github/workflows/Lucene-Net-Tests-Highlighter.yml
new file mode 100644
index 0000000..1619770
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Highlighter.yml
@@ -0,0 +1,107 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Highlighter'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Highlighter/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Highlighter/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Memory/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Highlighter/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Highlighter/Lucene.Net.Tests.Highlighter.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-ICU.yml b/.github/workflows/Lucene-Net-Tests-ICU.yml
new file mode 100644
index 0000000..267dc46
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-ICU.yml
@@ -0,0 +1,110 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.ICU'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/dotnet/Lucene.Net.Tests.ICU/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/dotnet/Lucene.Net.Tests.ICU/Directory.Build.*'
+    - 'src/dotnet/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Memory/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Highlighter/**/*'
+    - 'src/dotnet/Lucene.Net.ICU/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+    - 'src/Lucene.Net.Tests.Analysis.Common/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/dotnet/Lucene.Net.Tests.ICU/Lucene.Net.Tests.ICU.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Join.yml b/.github/workflows/Lucene-Net-Tests-Join.yml
new file mode 100644
index 0000000..7342c13
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Join.yml
@@ -0,0 +1,107 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Join'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Join/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Join/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Join/Lucene.Net.Tests.Join.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Memory.yml b/.github/workflows/Lucene-Net-Tests-Memory.yml
new file mode 100644
index 0000000..037166b
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Memory.yml
@@ -0,0 +1,108 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Memory'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Memory/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Memory/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Memory/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Memory/Lucene.Net.Tests.Memory.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Misc.yml b/.github/workflows/Lucene-Net-Tests-Misc.yml
new file mode 100644
index 0000000..7fd5978
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Misc.yml
@@ -0,0 +1,105 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Misc'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Misc/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Misc/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Misc/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Misc/Lucene.Net.Tests.Misc.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Queries.yml b/.github/workflows/Lucene-Net-Tests-Queries.yml
new file mode 100644
index 0000000..c5bdc81
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Queries.yml
@@ -0,0 +1,105 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Queries'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Queries/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Queries/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Queries/Lucene.Net.Tests.Queries.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-QueryParser.yml b/.github/workflows/Lucene-Net-Tests-QueryParser.yml
new file mode 100644
index 0000000..e21b777
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-QueryParser.yml
@@ -0,0 +1,107 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.QueryParser'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.QueryParser/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.QueryParser/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.QueryParser/Lucene.Net.Tests.QueryParser.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Replicator.yml b/.github/workflows/Lucene-Net-Tests-Replicator.yml
new file mode 100644
index 0000000..4a813cf
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Replicator.yml
@@ -0,0 +1,110 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Replicator'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Replicator/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Replicator/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Replicator/**/*'
+    - 'src/dotnet/Lucene.Net.Replicator.AspNetCore/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Replicator/Lucene.Net.Tests.Replicator.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Sandbox.yml b/.github/workflows/Lucene-Net-Tests-Sandbox.yml
new file mode 100644
index 0000000..c165437
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Sandbox.yml
@@ -0,0 +1,105 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Sandbox'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Sandbox/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Sandbox/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Sandbox/Lucene.Net.Tests.Sandbox.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Spatial.yml b/.github/workflows/Lucene-Net-Tests-Spatial.yml
new file mode 100644
index 0000000..354b03e
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Spatial.yml
@@ -0,0 +1,106 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Spatial'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Spatial/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Spatial/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Spatial/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Spatial/Lucene.Net.Tests.Spatial.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-Suggest.yml b/.github/workflows/Lucene-Net-Tests-Suggest.yml
new file mode 100644
index 0000000..96ac7ff
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-Suggest.yml
@@ -0,0 +1,107 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.Suggest'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.Suggest/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.Suggest/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Misc/**/*'
+    - 'src/Lucene.Net.Suggest/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.Suggest/Lucene.Net.Tests.Suggest.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-TestFramework-DependencyInjection.yml b/.github/workflows/Lucene-Net-Tests-TestFramework-DependencyInjection.yml
new file mode 100644
index 0000000..9dfd3db
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-TestFramework-DependencyInjection.yml
@@ -0,0 +1,104 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.TestFramework.DependencyInjection'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.TestFramework.DependencyInjection/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.TestFramework.DependencyInjection/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.TestFramework.DependencyInjection/Lucene.Net.Tests.TestFramework.DependencyInjection.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-TestFramework.yml b/.github/workflows/Lucene-Net-Tests-TestFramework.yml
new file mode 100644
index 0000000..dc4f12f
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-TestFramework.yml
@@ -0,0 +1,104 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests.TestFramework'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests.TestFramework/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests.TestFramework/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests.TestFramework/Lucene.Net.Tests.TestFramework.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-_A-D.yml b/.github/workflows/Lucene-Net-Tests-_A-D.yml
new file mode 100644
index 0000000..bfda6d3
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-_A-D.yml
@@ -0,0 +1,110 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests._A-D'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests._A-D/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests._A-D/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests._A-D/Lucene.Net.Tests._A-D.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-_E-I.yml b/.github/workflows/Lucene-Net-Tests-_E-I.yml
new file mode 100644
index 0000000..7d10a84
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-_E-I.yml
@@ -0,0 +1,110 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests._E-I'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests._E-I/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests._E-I/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests._E-I/Lucene.Net.Tests._E-I.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-_I-J.yml b/.github/workflows/Lucene-Net-Tests-_I-J.yml
new file mode 100644
index 0000000..3cd4533
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-_I-J.yml
@@ -0,0 +1,110 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests._I-J'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests._I-J/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests._I-J/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests._I-J/Lucene.Net.Tests._I-J.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-_J-S.yml b/.github/workflows/Lucene-Net-Tests-_J-S.yml
new file mode 100644
index 0000000..b3a93af
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-_J-S.yml
@@ -0,0 +1,110 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests._J-S'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests._J-S/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests._J-S/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests._J-S/Lucene.Net.Tests._J-S.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
diff --git a/.github/workflows/Lucene-Net-Tests-_T-Z.yml b/.github/workflows/Lucene-Net-Tests-_T-Z.yml
new file mode 100644
index 0000000..61334de
--- /dev/null
+++ b/.github/workflows/Lucene-Net-Tests-_T-Z.yml
@@ -0,0 +1,110 @@
+﻿####################################################################################
+# DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
+####################################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: 'Lucene.Net.Tests._T-Z'
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+    - 'src/Lucene.Net.Tests._T-Z/**/*'
+    - 'build/Dependencies.props'
+    - 'build/TestReferences.Common.*'
+    - 'TestTargetFrameworks.*'
+    - '*.sln'
+    - 'src/Lucene.Net.Tests._T-Z/Directory.Build.*'
+    - 'src/Directory.Build.*'
+    - 'Directory.Build.*'
+
+    # Dependencies
+    - 'src/Lucene.Net/**/*'
+    - 'src/Lucene.Net.Codecs/**/*'
+    - 'src/Lucene.Net.Queries/**/*'
+    - 'src/Lucene.Net.Grouping/**/*'
+    - 'src/Lucene.Net.Join/**/*'
+    - 'src/Lucene.Net.Facet/**/*'
+    - 'src/Lucene.Net.Analysis.Common/**/*'
+    - 'src/Lucene.Net.Sandbox/**/*'
+    - 'src/Lucene.Net.QueryParser/**/*'
+    - 'src/Lucene.Net.TestFramework/**/*'
+
+    - '!**/*.md'
+
+jobs:
+
+  Test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest, ubuntu-latest]
+        framework: [net5.0, netcoreapp2.1, net48]
+        platform: [x64]
+        configuration: [Release]
+        exclude:
+          - os: ubuntu-latest
+            framework: net48
+          - os: macos-latest
+            framework: net48
+    env:
+      project_path: './src/Lucene.Net.Tests._T-Z/Lucene.Net.Tests._T-Z.csproj'
+      trx_file_name: 'TestResults.trx'
+      md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Setup .NET 3.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '3.1.404'
+        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+
+      - name: Setup .NET 2.1 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '2.1.811'
+        if: ${{ startswith(matrix.framework, 'netcoreapp2.') }}
+
+      - name: Setup .NET 5 SDK
+        uses: actions/setup-dotnet@v1
+        with:
+          dotnet-version: '5.0.100'
+
+      - run: |
+          $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
+          $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          Write-Host "Project Name: $project_name"
+          Write-Host "Results Artifact Name: $test_results_artifact_name"
+          echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Title for LiquidTestReports.Markdown
+          echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
+      - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunConfiguration.TargetPlatform=${{matrix.platform}}
+      # upload reports as build artifacts
+      - name: Upload a Build Artifact
+        uses: actions/upload-artifact@v2
+        if: ${{always()}}
+        with:
+          name: '${{env.test_results_artifact_name}}'
+          path: '${{github.workspace}}/${{env.test_results_artifact_name}}'
+
