lucene go
1.0.0
中文
Lucene est une bibliothèque de moteurs de recherche. lucene-go est sa mise en œuvre de la version Golang.
L'objectif du projet a subi plusieurs rebondissements pendant le processus de développement, rencontrant des difficultés beaucoup plus importantes que prévu, les différences linguistiques et le manque de connaissances théoriques. Après un an de développement, les principaux modules suivants ont été progressivement achevés:
Il convient de noter que le projet actuel n'est pas parfait! N'utilisez pas pour aucun projet ~
Go1.21 +
Plus d'exemples
Utilisation IndexWriter
package main
import (
"context"
"fmt"
"github.com/geange/lucene-go/codecs/simpletext"
"github.com/geange/lucene-go/core/document"
"github.com/geange/lucene-go/core/index"
"github.com/geange/lucene-go/core/search"
"github.com/geange/lucene-go/core/store"
)
func main () {
dir , err := store . NewNIOFSDirectory ( "data" )
if err != nil {
panic ( err )
}
codec := simpletext . NewCodec ()
similarity , err := search . NewCastBM25Similarity ()
config := index . NewIndexWriterConfig ( codec , similarity )
writer , err := index . NewIndexWriter ( context . Background (), dir , config )
if err != nil {
panic ( err )
}
defer func () {
err := writer . Commit ( context . Background ())
if err != nil {
fmt . Println ( err )
}
}()
{
doc := document . NewDocument ()
doc . Add ( document . NewStoredField [ int32 ]( "a" , 74 ))
doc . Add ( document . NewStoredField [ int32 ]( "a1" , 86 ))
doc . Add ( document . NewStoredField [ int32 ]( "a2" , 1237 ))
docID , err := writer . AddDocument ( context . Background (), doc )
if err != nil {
panic ( err )
}
fmt . Println ( docID )
}
{
doc := document . NewDocument ()
doc . Add ( document . NewStoredField [ int32 ]( "a" , 123 ))
doc . Add ( document . NewStoredField [ int32 ]( "a1" , 123 ))
doc . Add ( document . NewStoredField [ int32 ]( "a2" , 789 ))
docID , err := writer . AddDocument ( context . Background (), doc )
if err != nil {
panic ( err )
}
fmt . Println ( docID )
}
{
doc := document . NewDocument ()
doc . Add ( document . NewStoredField [ int32 ]( "a" , 741 ))
doc . Add ( document . NewStoredField [ int32 ]( "a1" , 861 ))
doc . Add ( document . NewStoredField [ int32 ]( "a2" , 12137 ))
docID , err := writer . AddDocument ( context . Background (), doc )
if err != nil {
panic ( err )
}
fmt . Println ( docID )
}
}