[ 
https://issues.apache.org/jira/browse/GSOC-286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Irwin updated GSOC-286:
----------------------------
    Description: 
*Background and Goal*

Apache Lucene.NET is a .NET port of the Apache Lucene search engine (originally 
written in Java). This powerful library enables indexing and searching of 
documents with custom queries, making it a core component in many production 
environments. With over 100 million NuGet downloads, Lucene.NET is utilized in 
diverse scenarios, from local search functionality in mobile apps to supporting 
large-scale cloud infrastructures.

Lucene.NET already provides a foundation for replicating a search index from a 
primary node to one or more replica nodes, enabling High Availability (HA) and 
scalability through load balancing. Currently, our 
Lucene.Net.Replicator.AspNetCore project offers minimal replication support for 
ASP.NET Core servers, but it remains unpublished on NuGet and lacks the 
robustness required for most use cases. Your focus for this project will be to 
enhance and finalize the ASP.NET Core library, ensuring a seamless user 
experience by adhering to best practices and making replication setup as 
straightforward as possible – ideally requiring just one line of code.

Additionally, users may need replication support for applications outside 
ASP.NET Core, such as cloud-based distributed architectures, Windows services, 
or command-line tools running on Linux. To address this, we propose creating 
modular intermediate libraries using 
Microsoft.Extensions.DependencyInjection.Abstractions, enabling flexible and 
reusable replication configurations. This approach should also ensure that 
essential components like IndexWriter and IndexReader are configured in a 
straightforward and user-friendly manner.

Your task will also include creating one or more sample projects that 
demonstrate how to effectively use the enhanced replication functionality. 
These projects should serve as practical, real-world examples for the 
community, showcasing best practices and ease of use. Additionally, you will be 
responsible for thoroughly testing the code changes to ensure they work as 
intended in real-world scenarios. This includes writing comprehensive unit 
tests to guarantee the reliability and quality of the solution.

We plan for this to be a hands-on mentorship, and we will set up any 
infrastructure for you. As a contributor, your responsibilities will include 
analyzing the problem, developing a detailed plan, refining it with input from 
the project team, and collaborating regularly to implement the solution through 
pull requests and code reviews.

*Relevant Skills*
 * Familiarity with C# and unit testing
 * Strong grasp of design patterns and practices, such as dependency injection 
and i.e. the fluent builder and abstract factory patterns
 * Basic understanding of HTTP(S) and networking
 * Not required, but good to have:
 ** Familiarity with ASP.NET Core 5 or later
 ** Understanding of distributed architectures
 ** Familiarity with Lucene(.NET) search indexes

  was:
*Background and Goal*

Apache Lucene.NET is a .NET port of the Apache Lucene search engine (originally 
written in Java). This powerful library enables indexing and searching of 
documents with custom queries, making it a core component in many production 
environments. With over 100 million NuGet downloads, Lucene.NET is utilized in 
diverse scenarios, from local search functionality in mobile apps to supporting 
large-scale cloud infrastructures.

Lucene.NET already provides a foundation for replicating a search index from a 
primary node to one or more replica nodes, enabling High Availability (HA) and 
scalability through load balancing. Currently, our 
Lucene.Net.Replicator.AspNetCore project offers minimal replication support for 
ASP.NET Core servers, but it remains unpublished on NuGet and lacks the 
robustness required for most use cases. Your focus for this project will be to 
enhance and finalize the ASP.NET Core library, ensuring a seamless user 
experience by adhering to best practices and making replication setup as 
straightforward as possible – ideally requiring just one line of code.

Additionally, users may need replication support for applications outside 
ASP.NET Core, such as cloud-based distributed architectures, Windows services, 
or command-line tools running on Linux. To address this, we propose creating 
modular intermediate libraries using 
Microsoft.Extensions.DependencyInjection.Abstractions, enabling flexible and 
reusable replication configurations. This approach should also ensure that 
essential components like IndexWriter and IndexReader are configured in a 
straightforward and user-friendly manner.

Your task will also include creating one or more sample projects that 
demonstrate how to effectively use the enhanced replication functionality. 
These projects should serve as practical, real-world examples for the 
community, showcasing best practices and ease of use. Additionally, you will be 
responsible for thoroughly testing the code changes to ensure they work as 
intended in real-world scenarios. This includes writing comprehensive unit 
tests to guarantee the reliability and quality of the solution.

We plan for this to be a hands-on mentorship, and we will set up any 
infrastructure for you. As a contributor, your responsibilities will include 
analyzing the problem, developing a detailed plan, refining it with input from 
the project team, and collaborating regularly to implement the solution through 
pull requests and code reviews.

*Relevant Skills*
 * Familiarity with C# and unit testing
 * Strong grasp of design patterns and practices, such as dependency injection 
and i.e. the fluent builder and abstract factory patterns
 * Basic understanding of HTTP(S) and networking
 * Not required, but good to have:
 ** Familiarity with ASP.NET Core 5 or later
 ** Understanding of distributed architectures
 ** Familiarity with Lucene(.NET) search indexes

 

{*}Difficulty{*}: Medium

{*}Project Size{*}: ~175 hour (part-time)

{*}Potential Mentors{*}:
 * Paul Irwin, paulir...@apache.org
 * Project Devs, d...@lucenenet.apache.org


> Apache Lucene.NET: Replicator and Dependency Injection Enhancements
> -------------------------------------------------------------------
>
>                 Key: GSOC-286
>                 URL: https://issues.apache.org/jira/browse/GSOC-286
>             Project: Comdev GSOC
>          Issue Type: New Feature
>            Reporter: Paul Irwin
>            Priority: Normal
>              Labels: Lucene.NET, LuceneNet, gsoc, gsoc2025, mentor, part-time
>
> *Background and Goal*
> Apache Lucene.NET is a .NET port of the Apache Lucene search engine 
> (originally written in Java). This powerful library enables indexing and 
> searching of documents with custom queries, making it a core component in 
> many production environments. With over 100 million NuGet downloads, 
> Lucene.NET is utilized in diverse scenarios, from local search functionality 
> in mobile apps to supporting large-scale cloud infrastructures.
> Lucene.NET already provides a foundation for replicating a search index from 
> a primary node to one or more replica nodes, enabling High Availability (HA) 
> and scalability through load balancing. Currently, our 
> Lucene.Net.Replicator.AspNetCore project offers minimal replication support 
> for ASP.NET Core servers, but it remains unpublished on NuGet and lacks the 
> robustness required for most use cases. Your focus for this project will be 
> to enhance and finalize the ASP.NET Core library, ensuring a seamless user 
> experience by adhering to best practices and making replication setup as 
> straightforward as possible – ideally requiring just one line of code.
> Additionally, users may need replication support for applications outside 
> ASP.NET Core, such as cloud-based distributed architectures, Windows 
> services, or command-line tools running on Linux. To address this, we propose 
> creating modular intermediate libraries using 
> Microsoft.Extensions.DependencyInjection.Abstractions, enabling flexible and 
> reusable replication configurations. This approach should also ensure that 
> essential components like IndexWriter and IndexReader are configured in a 
> straightforward and user-friendly manner.
> Your task will also include creating one or more sample projects that 
> demonstrate how to effectively use the enhanced replication functionality. 
> These projects should serve as practical, real-world examples for the 
> community, showcasing best practices and ease of use. Additionally, you will 
> be responsible for thoroughly testing the code changes to ensure they work as 
> intended in real-world scenarios. This includes writing comprehensive unit 
> tests to guarantee the reliability and quality of the solution.
> We plan for this to be a hands-on mentorship, and we will set up any 
> infrastructure for you. As a contributor, your responsibilities will include 
> analyzing the problem, developing a detailed plan, refining it with input 
> from the project team, and collaborating regularly to implement the solution 
> through pull requests and code reviews.
> *Relevant Skills*
>  * Familiarity with C# and unit testing
>  * Strong grasp of design patterns and practices, such as dependency 
> injection and i.e. the fluent builder and abstract factory patterns
>  * Basic understanding of HTTP(S) and networking
>  * Not required, but good to have:
>  ** Familiarity with ASP.NET Core 5 or later
>  ** Understanding of distributed architectures
>  ** Familiarity with Lucene(.NET) search indexes



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: gsoc-unsubscr...@community.apache.org
For additional commands, e-mail: gsoc-h...@community.apache.org

Reply via email to