Golang语言知识库

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

2022-01-01  本文已影响0人  cn華少

知识分享之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 国际许可协议 进行许可。
上一篇下一篇

猜你喜欢

热点阅读