lucene go
1.0.0
中文
O Lucene é uma biblioteca de mecanismo de pesquisa. lucene-go é sua implementação da versão de Golang.
O objetivo do projeto passou por várias reviravoltas durante o processo de desenvolvimento, encontrando dificuldades muito maiores do que o esperado, as diferenças de linguagem e a falta de conhecimento teórico. Após um ano de desenvolvimento, os seguintes módulos principais foram concluídos gradualmente:
Deve -se notar que o projeto atual não é perfeito! Não use para nenhum projeto ~
GO1.21+
Mais exemplo
Usando 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 )
}
}