在 Swift 中生成 ElasticSearch 查询
@objcMember
class Recipe: NSObject {
dynamic var cookTimeMin: Int = 0
dynamic var title: String = ""
}
let query = ElastiQ()
.range(\Recipe.cookTimeMin, [.lt(30), .gte(10)])
let json = try! query.json()
print(String(data: json, encoding: .utf8))
//-------------------
{
"query": {
"range": {
"cookTimeMin": {
"gte":10,
"lt":30
}
}
}
}
let query = ElastiQ()
.bool({ query in
query.filter { filter in
filter
.term(\Recipe.title, "tomato")
.range(\Recipe.cookTimeMin, .lt(30))
}
})
let json = try! query.json()
print(String(data: json, encoding: .utf8))
//----------------
{
"query" : {
"bool" : {
"filter" : [
{
"term" : {
"title" : "bean"
}
},
{
"range" : {
"cookTimeMin" : {
"lt" : 30
}
}
}
]
}
}
}
下载所有 *.swift
文件并将其放入您的项目中。
变更日志在这里:这里。
ElastiQ 在 MIT 许可下。有关更多信息,请参阅 LICENSE 文件。