使用algolia索引和搜索记录。

kinto-algolia的Python项目详细描述


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

kinto algolia将记录转发到algolia并提供一个/search 查询索引数据的终结点。

安装

pip install kinto-algolia

设置

Kinto设置中:

kinto.includes=kinto_algoliakinto.algolia.application_id=YourApplicationIDkinto.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.1200OKAccess-Control-Expose-Headers:Retry-After, Content-Length, Alert, BackoffContent-Length:333Content-Type:application/json; charset=UTF-8Date:Wed, 20 Jan 2016 12:02:05 GMTServer: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 official documentation

运行测试

$ 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)

错误修复

  • 修复reindex命令。

0.1.0(2018-04-12)

新功能

  • 刷新服务器时刷新索引
  • 批量执行插入和删除以提高效率
  • 添加心跳
  • 删除存储桶和集合时删除索引
  • 支持从querystring进行快速搜索
  • 支持从集合元数据中的algolia:settings属性定义映射

错误修复

  • 只有在提交存储事务时才索引记录
  • 如果集合或存储桶没有读取权限,则不允许搜索
  • 修复创建集合后启用插件时的空结果响应

内部更改

  • 创建集合时创建索引

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据日期比较两条记录并返回cassandra中的最新记录   在Java中检查导致错误的奇数整数   当其他应用程序也在访问同一数据库时,java有没有办法打开h2控制台?   Java不能生成多个JSON文本   使用撤消按钮在Java ArrayList中移动   通过java Processbuilder提交hadoop mapreduce作业不会结束   使用loop在java中生成基本乘法表   java如何反序列化XML并在给定元素后获取特定键的值   优选具有java实现的加密算法   java连续线程。sleep()在一个同步的瞬间继续运行理想的延迟代码   java如何在OpenGL ES 2.0中从数组中读取4个以上的顶点数据?   java AlertDialog getActivity()错误   java根据数据库表动态连接到数据库   java获取字符串中特定单词后面的字符?   在Cactoos类上使用多个Iterables引发的java警告   在eclipse中找不到java 安卓 inapp购买库   安全性java网络摄像头捕获API安全吗?   当使用服务帐户列出GSuite上的驱动器文件时,java被授权   java如何提高从hazelcast读取数据的Get方法性能?