使用algolia索引和搜索记录。
kinto-algolia的Python项目详细描述
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属性定义映射
错误修复
- 只有在提交存储事务时才索引记录
- 如果集合或存储桶没有读取权限,则不允许搜索
- 修复创建集合后启用插件时的空结果响应
内部更改
- 创建集合时创建索引