Lupyne is a search engine based on PyLucene, the Python extension for accessing Java Lucene.
Quickstart
import lucenelucene.initVM()
WARNING: Using incubator modules: jdk.incubator.vector
Jun 25, 2026 8:01:09 PM org.apache.lucene.internal.vectorization.PanamaVectorizationProvider <init>
INFO: Java vector incubator API enabled; uses preferredBitSize=256; FMA enabled
<jcc.JCCEnv at 0x7f9234934b10>
from lupyne import engine # don't forget to call lucene.initVMindexer = engine.Indexer('temp') # create an index at pathindexer.set('name', stored=True) # create stored 'name' fieldindexer.set('text', engine.Field.Text) # create indexed 'text' fieldindexer.add(name='sample', text='hello world') # add a document to the indexindexer.commit() # commit changes; document is now searchablehits = indexer.search('text:hello') # run search and return sequence of documentslen(hits), hits.count # 1 hit retrieved (out of a total of 1)
(1, 1)
(hit,) = hitshit['name'] # hits support mapping interface for their stored fields
'sample'
hit.id, hit.score # plus internal doc number and score
(0, 0.13076457381248474)
hit.dict() # dict representation of the hit document