Ruby 库

    总述

    Ruby 库提供微搜索API的 Ruby 封装。直接使用该库能够帮助开发者方便快捷地使用微搜索的各项功能。所有源码托管在 github, 开发者们可前往查看最新版本。源码同时附带 例子,方便用户学习使用。

    安装

    请在你的 Gemfile 里添加:

    gem 'tinysou'
    

    然后再命令行里执行

    $ bundle
    

    或者直接进行安装

    gem install tinysou
    

    使用

    初始化:

    client = Tinysou::Client.new 'YOUR_TOKEN'
    

    Engine

    罗列engine

    罗列出你的所有engine

    client.engines
    

    创建engine

    创建一个名称为 ‘blog',显示名为 'Blog’ 的engine

    client.create_engine name: 'blog', display_name: 'Blog'
    

    完整参数请参见 http://doc.tinysou.com/v1/indexing.html#2-2-创建一个-Engine

    读取一个engine

    通过名称 ‘blog’ 读取该engine

    client.engine 'blog'
    

    更新一个engine

    对 ‘blog’ 进行更新:

    client.update_engine 'blog', display_name: 'My Blog'
    

    删除一个engine

    删除名为blogengine:

    client.destroy_engine 'blog'
    

    Collection

    罗列collection

    罗列出 ‘blog’ 内包含的所有collection:

    client.collections 'blog'
    

    创建一个collection

    在 ‘blog’ 下创建一个collection,名为 ‘posts'。在posts里有 'title','tags','author','date’ 和 ‘body’ 这些field,并分别指定这些`field·的类型,如 ‘title’ 类型为 ‘string’ :

    client.create_collection 'blog', name: 'posts', field_types: {
      title: 'string',
      tags: 'string',
      author: 'enum',
      date: 'date',
      body: 'text'
    }
    

    完整参数请参见 http://doc.tinysou/v1/indexing.html#3-7-创建一个-Collection

    读取一个collection

    返回'blog'下的 ‘posts':

    client.collection 'blog', 'posts'
    

    删除一个collection

    删除'blog'下的 'posts':

    client.destroy_collection 'blog', 'posts'
    

    Document

    罗列document

    罗列出 'blog’ 下、'posts'里的所有document,并让返回的结果从第0页开始显示,每页显示20项:

    client.documents 'blog', 'posts', page: 0, per_page: 20
    

    创建一个document

    在 ‘blog’ 下的 ‘posts’ 里创建一个document

    client.create_document 'blog', 'posts', {
      title: 'My First Post',
      tags: ['news'],
      author: 'Author',
      date: '2014-08-16T00:00:00Z',
      body: 'Tinysou start online today!'
    }
    

    完整参数请参见 http://doc.tinysou/v1/indexing.html#4-11-创建一个-Document(自动生成-id-方式)

    读取一个document

    enginecollection不同,document只能通过唯一的documentId来进行访问。在下面的例子中,documentId就是‘293ddf9205df9b36ba5761d61ca59a29':

    client.document 'blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29'
    

    更新一个document

    在 'blog’ 中的 ‘posts’ 里更新一个document

    client.update_document 'blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29', {
      title: 'First Post'
    }
    

    完整参数请参见 http://doc.tinysou/v1/indexing.html#4-14-创建或更新一个-Document

    删除一个document

    在 ‘blog’ 中的 ‘posts’ 里删除一个document

    client.destroy_document 'blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29'
    

    搜索

    在 ‘blog’ 下的 ‘posts’ 里搜索关键词'tinysou':

    client.search 'blog', {
        q: 'tinysou', c: 'posts',
        page: 0, per_parge: 10,
        filter: {
            range: {
                field: "date",
                from: "2014-07-01T00:00:00Z",
                to: "2014-08-01T00:00:00Z"
            }
        },
        sort: {
            field: "date",
            order: "asc",
            mode: "avg"
        }
    }
    

    完整参数请参见 http://doc.tinysou/v1/searching.html#2-2-2.搜索多个collection

    自动补全

    在 ‘posts’ 里对关键词 ‘tinys’ 进行补全:

    client.autocomplete 'blog', q: 't', c: 'posts'
    

    自动补全 API 与搜索 API 使用相同的权限验证,参数和返回格式。 完整参数请参考搜索的参数。

    参与

    1. Fork 我们的项目 ( https://github.com/tinysou/tinysou-ruby/fork )
    2. 创建你的新分支 (git checkout -b my-new-feature)
    3. 提交你的修改 (git commit -am 'Add some feature')
    4. 推送到新分支 (git push origin my-new-feature)
    5. 创建一个合并请求