lucene go
1.0.0
中文
Lucene是一個搜索引擎庫。 lucene-go is its Golang version implementation.
該項目的目標在開發過程中經歷了幾次曲折,遇到的困難遠遠超過預期,語言差異和缺乏理論知識。經過一年的發展,以下主要模塊逐漸完成:
應該注意的是,當前的項目並不完美!不要用於任何項目〜
GO1.21+
更多示例
Using 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 )
}
}