美文网首页Golang语言知识库
知识分享之Golang——Bleve中提供的各类搜索方法(二)

知识分享之Golang——Bleve中提供的各类搜索方法(二)

作者: cn華少 | 来源:发表于2022-01-01 09:01 被阅读0次

    知识分享之Golang——Bleve中提供的各类搜索方法(二)

    背景

    知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

    知识分享系列目前包含Java、Golang、Linux、Docker等等。

    开发环境

    内容

    本篇为第二部分,如想查看第一部分可点击知识分享之Golang——Bleve中提供的各类搜索方法(一)
    为了更便于大家进行使用bleve组件,我对其源码中提供的查询方法进行相关翻译,在此提供给大家,便于大家快速理解和使用。
    以下为基于bleve的search.go文件进行翻译的相关函数使用方式:

    
    // NewNumericRangeQuery 为数值范围创建一个新的查询。
    // 任何一个都可以,但不是两个端点都可以为nil。
    // 最小值包含在内。
    // 最大值为互斥值。
    func NewNumericRangeQuery(min, max *float64) *query.NumericRangeQuery {
        return query.NewNumericRangeQuery(min, max)
    }
    
    // NewNumericRangeInclusiveQuery 为数值范围创建一个新的Query。
    // 任何一个都可以,但两个端点不能都是nil。
    // 使用incluvemin和incluvemax控制是否包含在内。
    func NewNumericRangeInclusiveQuery(min, max *float64, minInclusive, maxInclusive *bool) *query.NumericRangeQuery {
        return query.NewNumericRangeInclusiveQuery(min, max, minInclusive, maxInclusive)
    }
    
    // NewTermRangeQuery 为文本术语范围创建一个新的查询。
    // 任意一个,但不是两个端点都可以是""。
    // 最小值包含在内。
    // 最大值为互斥值。
    func NewTermRangeQuery(min, max string) *query.TermRangeQuery {
        return query.NewTermRangeQuery(min, max)
    }
    
    // NewTermRangeInclusiveQuery 为文本术语范围创建一个新的查询。
    // 任意一个,但不是两个端点都可以是""。
    // 使用inclvemin、inclvemax控制是否包含开始和结束点。
    func NewTermRangeInclusiveQuery(min, max string, minInclusive, maxInclusive *bool) *query.TermRangeQuery {
        return query.NewTermRangeInclusiveQuery(min, max, minInclusive, maxInclusive)
    }
    
    // NewPhraseQuery 创建一个新的查询,用于在索引中查找精确的术语短语。
    // 所提供的术语必须在指定字段中以正确的顺序存在,在正确的索引偏移量处。
    // 查询的字段必须被索引,includeterminvectors设置为true。
    func NewPhraseQuery(terms []string, field string) *query.PhraseQuery {
        return query.NewPhraseQuery(terms, field)
    }
    
    // NewPrefixQuery 创建一个新的Query,用于查找包含以指定前缀开头的术语的文档。
    func NewPrefixQuery(prefix string) *query.PrefixQuery {
        return query.NewPrefixQuery(prefix)
    }
    
    // NewRegexpQuery 创建一个新的Query,用于查找包含与指定正则表达式匹配的术语的文档。
    func NewRegexpQuery(regexp string) *query.RegexpQuery {
        return query.NewRegexpQuery(regexp)
    }
    
    // NewQueryStringQuery 创建一个新的Query,用于查找满足查询字符串的文档。
    // 查询字符串是一种小型的人类查询语言。
    func NewQueryStringQuery(q string) *query.QueryStringQuery {
        return query.NewQueryStringQuery(q)
    }
    
    // NewTermQuery 创建一个新的Query,用于在索引中查找精确的术语匹配。
    func NewTermQuery(term string) *query.TermQuery {
        return query.NewTermQuery(term)
    }
    
    // NewWildcardQuery 创建一个新的Query,查找包含与指定通配符匹配的术语的文档。
    // 在通配符模式中'*'将匹配任何0或多个字符的序列,而'?'将匹配任何单个字符。
    func NewWildcardQuery(wildcard string) *query.WildcardQuery {
        return query.NewWildcardQuery(wildcard)
    }
    
    // NewGeoBoundingBoxQuery 创建一个新的Query来执行地理边界框搜索。
    // 参数描述了框的位置,并将返回在框内具有索引地理点的文档。
    func NewGeoBoundingBoxQuery(topLeftLon, topLeftLat, bottomRightLon, bottomRightLat float64) *query.GeoBoundingBoxQuery {
        return query.NewGeoBoundingBoxQuery(topLeftLon, topLeftLat, bottomRightLon, bottomRightLat)
    }
    
    // NewGeoDistanceQuery 创建一个新的查询执行地理距离搜索。
    // 参数描述了位置和距离。
    // 文档的索引地理点小于或等于给定位置提供的距离将被返回。
    func NewGeoDistanceQuery(lon, lat float64, distance string) *query.GeoDistanceQuery {
        return query.NewGeoDistanceQuery(lon, lat, distance)
    }
    
    // NewIPRangeQuery 创建一个新的IP地址匹配查询。
    // 如果参数是CIDR格式的,那么查询将匹配指定网络中的所有IP地址。
    // 如果参数是一个IP地址,那么查询将返回包含该IP的文档。
    // 支持ipv4和ipv6。
    func NewIPRangeQuery(cidr string) *query.IPRangeQuery {
        return query.NewIPRangeQuery(cidr)
    }
    
    
    本文声明:
    88x31.png
    知识共享许可协议
    本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

    相关文章

      网友评论

        本文标题:知识分享之Golang——Bleve中提供的各类搜索方法(二)

        本文链接:https://www.haomeiwen.com/subject/tgxnqrtx.html