我使用这个包:https://github.com/blevesearch/bleve来创建products2images的映射。
当我使用单个术语时,它工作得很好,但如果我使用整个短语,它就完全不起作用了。例如,如果我使用以下命令:
query := bleve.NewFuzzyQuery("lacteo")它将正确地映射正确的图像。但是,如果我这样做:
query := bleve.NewFuzzyQuery("lacteo leche yogurt cebolla")它根本不会匹配任何内容。
我在这里做错了什么?
设置数据库:
package main
import (
"github.com/blevesearch/bleve"
)
func main() {
message := []struct {
Id string
Body string
}{
{
Id: "lacteos.jpg",
Body: "lacteo leche yogurt cebolla",
},
{
Id: "cafe.jpg",
Body: "café yerba té",
},
{
Id: "queso.jpg",
Body: "lacteo leche yogurt cebolla queso",
},
{
Id: "harina.jpg",
Body: "harina",
},
}
mapping := bleve.NewIndexMapping()
index, err := bleve.New("example.bleve", mapping)
if err != nil {
panic(err)
}
index.Index(message[0].Id, message[0])
index.Index(message[1].Id, message[1])
index.Index(message[2].Id, message[2])
index.Index(message[3].Id, message[3])
}搜索某些内容:
package main
import (
"fmt"
"log"
"github.com/blevesearch/bleve"
)
func main() {
index, _ := bleve.Open("example.bleve")
query := bleve.NewFuzzyQuery("lacteo leche yogurt cebolla queso")
query.SetFuzziness(2)
searchRequest := bleve.NewSearchRequest(query)
searchResult, err := index.Search(searchRequest)
if err != nil {
log.Fatal(err.Error())
}
for _, v := range searchResult.Hits {
fmt.Println(v.ID)
fmt.Println(v.Score)
fmt.Println("-------------")
}
}发布于 2021-03-06 02:49:06
所以,在他们的repo:https://github.com/blevesearch/bleve/issues/1565上发布了一个问题后,我发现这实际上是不受支持的。我最终添加了更多的逻辑到我的一侧,以使其工作。
https://stackoverflow.com/questions/66460738
复制相似问题