gpt4 book ai didi

xml - 使用 Go bleve 文本索引库索引 XML

转载 作者:IT王子 更新时间:2023-10-29 01:11:12 25 4
gpt4 key购买 nike

如何使用 bleve 文本索引库,https://github.com/blevesearch/bleve , 索引 XML 内容?

我考虑过在 Go 中使用像这样的 XML 解析器的代码:https://github.com/dps/go-xml-parse ,但是我如何将解析的内容传递给 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>

最佳答案

您将创建一个定义 XML 结构的结构。然后,您可以使用标准的“encoding/xml”包将 XML 解码到结构中。从那里您可以像往常一样使用 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)
}

关于xml - 使用 Go bleve 文本索引库索引 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com