lucene go
1.0.0
中文
لوكين هي مكتبة محرك البحث. 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 )
}
}