Python 库

    总述

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

    安装

    $ pip install tinysou
    

    使用

    import tinysou
    client = tinysou.Client('YOUR_TOKEN')
    

    Engine

    罗列engine

    罗列出你的所有engine

    client.engines.list()
    

    创建engine

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

    client.engines.create({'name': 'blog', 'display_name': 'Blog'})
    

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

    读取一个engine

    通过名称 ‘blog’ 读取该engine

    client.engines.get('blog')
    

    更新一个engine

    对 ‘blog’ 进行更新:

    client.engines.update('blog', {'display_name': 'My Blog'})
    

    删除一个engine

    删除名为blogengine:

    client.engines.delete('blog')
    

    Collection

    罗列collection

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

    client.collections.list('blog')
    

    创建一个collection

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

    client.collections.create('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.collections.get('blog', 'posts')
    

    删除一个collection

    删除'blog'下的 'posts':

    client.collections.delete('blog', 'posts')
    

    Document

    罗列document

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

    client.documents.list('blog', 'posts', {'page': 0, 'per_page': 20})
    

    创建一个document

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

    client.documents.create('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.documents.get('blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29')
    

    更新一个document

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

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

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

    删除一个document

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

    client.documents.delete('blog', 'posts', '293ddf9205df9b36ba5761d61ca59a29')
    

    搜索

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

    client.search('blog', {'q': 'tinysou', 'c': 'posts'})
    

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

    自动补全

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

    client.autocomplete('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"
        }
    })
    

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

    参与

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