lucene go
1.0.0
中文
Lucene - это библиотека поисковой системы. lucene-go -это реализация версии Golang.
Цель проекта претерпела несколько поворотов в процессе разработки, столкнувшись с гораздо большими трудностями, чем ожидалось, языковые различия и отсутствие теоретических знаний. После года разработки следующие основные модули были постепенно завершены:
Следует отметить, что текущий проект не идеален! Не используйте для какого -либо проекта ~
GO1.21+
Больше примера
Используя 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 )
}
}