3

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>
4

1 に答える 1

2

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)
}
于 2014-09-17T13:17:06.417 に答える