知识分享之Golang——Bleve中提供的各类搜索方法(二)
背景
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
知识分享系列目前包含Java、Golang、Linux、Docker等等。
开发环境
- 系统:windows10
- 语言:Golang
- 组件库:Bleve
- golang版本:1.17
- 组件官网:http://blevesearch.com/
- 组件仓库:https://github.com/blevesearch/bleve
- 开源协议:Apache-2.0 License
内容
本篇为第二部分,如想查看第一部分可点击知识分享之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)
}
本文声明:
![](https://i-blog.csdnimg.cn/blog_migrate/30b57c2c9e789b4e4558da9d1c7a08f4.png)
88x31.png
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。