ElastiQ 0.7.1

ElastiQ 0.7.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2017年9月
SwiftSwift 版本4.0
SPM支持 SPM

sgr-ksmt 维护。



ElastiQ 0.7.1

  • Suguru Kishimoto

在 Swift 中生成 ElasticSearch 查询

功能

  • 方法链
  • 类型安全。
  • 兼容 KeyPath。

如何使用

@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
            }
          }
        }
      ]
    }
  }
}

待办事项

  • [ ] from/size/source/field
  • [ ] match
  • [ ] aggregation
  • [ ] function score query

要求

  • iOS 9.0+
  • Xcode 9+
  • Swift 4+

安装

手动安装

下载所有 *.swift 文件并将其放入您的项目中。

变更日志

变更日志在这里:这里

沟通

  • 如果您发现了一个错误,请打开一个问题。
  • 如果您有功能请求,请打开一个问题。
  • 如果您想做出贡献,请提交一个 pull request。💪

许可证

ElastiQ 在 MIT 许可下。有关更多信息,请参阅 LICENSE 文件。