Skip to content

nehemiaharchives/lucene-kmp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lucene Kotlin Multiplatform

CI codecov

What is it?

This repository contains a lucene-kmp library project, a Kotlin Multiplatform port of apache lucene that is deployable to Maven Central.

Supported platforms

  • jvm
  • android
  • iOS (iosX64, iosArm64, iosSimulatorArm64)

Lucene Java Source Project

currently the port is based on following commit of lucene main branch which is some commits before lucene 10.2.0 release

commit ec75fcad5a4208c7b9e35e870229d9b703cda8f3 (HEAD -> main, origin/main, origin/HEAD)
Author: Robert Muir <[email protected]>
Date:   Sun Mar 2 14:11:10 2025 -0500

    reformat the python code with 'make reformat' and enable format in CI check

    currently the python code has a mix of indentation, styles, imports
    ordering, etc. for example, it is very difficult to work with mixed
    indentation levels: the language is sensitive to indentation.

    reformat all the code with 'make reformat' and enable format checks when
    linting. It works like spotless, just don't think about it.

PROGRESS

Classes needed to port to write minimum index:

  • org.apache.lucene.index.IndexWriter
  • org.apache.lucene.index.IndexWriterConfig
  • org.apache.lucene.store.FSDirectory
  • org.apache.lucene.analysis.Analyzer
  • org.apache.lucene.document.Document
  • org.apache.lucene.document.Field
  • org.apache.lucene.document.IntPoint
  • org.apache.lucene.document.StoredField
  • org.apache.lucene.document.TextField

Classes needed to port to perform minimum search:

  • org.apache.lucene.index.DirectoryReader
  • org.apache.lucene.index.StandardDirectoryReader
  • org.apache.lucene.queryparser.classic.QueryParser
  • org.apache.lucene.search.IndexSearcher
  • org.apache.lucene.store.FSLockFactory
  • org.apache.lucene.store.NIOFSDirectory
  • org.apache.lucene.document.IntPoint
  • org.apache.lucene.search.Query
  • org.apache.lucene.search.BooleanQuery
  • org.apache.lucene.search.BooleanClause
  • org.apache.lucene.search.Sort
  • org.apache.lucene.search.SortField

Unit tests needed to port to verify the above classes:

PROGRESS.md for overview of the progress including unit test classes. The file is automatically generated by progress.main.kts script which also outputs progress report to the console.

PROGRESS2.md for more detailed progress report. The file is automatically generated by progressv2.main.kts script which also outputs progress report to the console.

TODO

TODO.md and TODO_TEST.md is generated by AI based on progress docs to tell what to port next.

After completing those TODOs, we need to catch up with lucene main branch automatically using AI agent such as GitHub Copilot, open ai codex, google jules, and/or jetbrains junie one commit by commit up to 10.2.0 and later versions of Lucene.