如何使用bleve文本索引库https://github.com/blevesearch/bleve来索引XML内容?
我考虑在Go:https://github.com/dps/go-xml-parse中使用类似这个XML解析器的代码,但是如何将要解析的内容传递给Bleve进行索引?
更新:我的XML:
我的XML如下所示:
<page>
<title>Title here</title>
<image>image url here</title>
<text>A sentence of two about the topic</title>
<facts>
<fact>Fact 1</fact>
<fact>Fact 2</fact>
<fact>Fact 3</fact>
</facts>
</page>
答案 0 :(得分:2)
您将创建一个定义XML结构的结构。然后,您可以使用标准&#34; encoding / xml&#34; package将XML解组到struct中。从那里你可以正常使用Bleve索引结构。
http://play.golang.org/p/IZP4nrOotW
package main
import (
"encoding/xml"
"fmt"
)
type Page []struct {
Title string `xml:"title"`
Image string `xml:"image"`
Text string `xml:"text"`
Facts []struct {
Fact string `xml:"fact"`
} `xml:"facts"`
}
func main() {
xmlData := []byte(`<page>
<title>Title here</title>
<image>image url here</image>
<text>A sentence of two about the topic</text>
<facts>
<fact>Fact 1</fact>
<fact>Fact 2</fact>
<fact>Fact 3</fact>
</facts>
</page>`)
inputStruct := &Page{}
err := xml.Unmarshal(xmlData, inputStruct)
if nil != err {
fmt.Println("Error unmarshalling from XML.", err)
return
}
fmt.Printf("%+v\n", inputStruct)
}