跳转到主要内容

使用Algolia索引和搜索记录。

项目描述

https://img.shields.io/travis/Kinto/kinto-algolia.svg https://img.shields.io/pypi/v/kinto-algolia.svg https://coveralls.io/repos/Kinto/kinto-algolia/badge.svg?branch=master

kinto-algolia 将记录转发到Algolia,并提供一个 /search 端点来查询索引数据。

安装

pip install kinto-algolia

设置

Kinto 设置中

kinto.includes = kinto_algolia
kinto.algolia.application_id = YourApplicationID
kinto.algolia.api_key = YourAPIKey

# List of buckets/collections to show:
kinto.algolia.resources = /buckets/chefclub-v2
                          /buckets/chefclub/collections/recipes

默认情况下,索引名称以 kinto- 前缀。您可以通过以下方式更改此设置

kinto.algolia.index_prefix = myprefix

用法

创建新记录

$ echo '{"data":
    {"id": "1008855320",
     "last_modified": 1523349594783,
     "title": "kinto",
     "description": "A database for the web",
     "_geoloc": {"lng": -73.778925, "lat": 40.639751}}' | \
    http POST http://localhost:8888/v1/buckets/example/collections/notes/records \
        --auth token:alice-token

现在应该可以使用 Algolia API 来搜索它。

例如,使用快速查询字符串搜索

$ http "http://localhost:8888/v1/buckets/example/collections/notes/search?query=kinto+database" \
    --auth token:alice-token

或使用请求体的高级搜索

$ echo '{"insideBoundingBox": "46.650828100116044,7.123046875,45.17210966999772,1.009765625"}' | \
    http POST http://localhost:8888/v1/buckets/example/collections/notes/search \
        --auth token:alice-token
HTTP/1.1 200 OK
Access-Control-Expose-Headers: Retry-After, Content-Length, Alert, Backoff
Content-Length: 333
Content-Type: application/json; charset=UTF-8
Date: Wed, 20 Jan 2016 12:02:05 GMT
Server: waitress

{
  "hits": [
    {
       "_geoloc": {
           "lat": 40.639751,
           "lng": -73.778925
       },
       "_highlightResult": {
           "title": {
               "matchLevel": "none",
               "matchedWords": [],
               "value": "Kinto"
           }
       },
       "last_modified": 1523349594783,
       "title": "Kinto",
       "description": "A database for the web",
       "objectID": "1008855320"
    }
  ],
  "hitsPerPage": 1000,
  "nbHits": 1,
  "nbPages": 1,
  "page": 0,
  "params": "insideBoundingBox=42.124710287101955%2C9.335632324218752%2C41.47360232634395%2C14.403076171875002&hitsPerPage=10000&query=",
  "processingTimeMS": 2,
  "query": ""
}

自定义索引设置

默认情况下,Algolia从索引记录中推断数据类型。

但是,您可以从集合元数据中的 algolia:settings 属性定义索引映射(即模式)

$ echo '{
  "attributesToIndex": ["title", "description"]
}' | http PATCH "http://localhost:8888/v1/buckets/blog/collections/builds" \
    --auth token:admin-token --verbose

有关设置的其他信息,请参阅 Algolia官方文档

运行测试

$ make tests

更改日志

1.1.0 (2019-04-26)

  • 升级到algoliasearch 2.0

1.0.0 (2019-02-08)

  • 添加对集合白名单的支持。 (#6)

0.2.0 (2018-07-18)

错误修复

  • 更新Algolia设置。

0.1.1 (2018-06-06)

错误修复

  • 修复重新索引命令。

0.1.0 (2018-04-12)

新功能

  • 在服务器刷新时刷新索引

  • 批量执行插入和删除操作以提高效率

  • 添加心跳

  • 删除桶和集合时删除索引

  • 支持从查询字符串进行快速搜索

  • 支持在集合元数据中从 algolia:settings 属性定义映射

错误修复

  • 仅在存储事务提交时索引记录

  • 如果没有对集合或桶的读取权限,则不允许搜索

  • 修复了在创建集合后启用插件时的空结果响应

内部更改

  • 创建集合时创建索引

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

kinto-algolia-1.1.0.tar.gz (15.2 kB 查看哈希值)

上传时间

构建分发

kinto_algolia-1.1.0-py3-none-any.whl (10.8 kB 查看哈希值)

上传时间 Python 3

由以下组织支持