Swiftype App Search的已弃用API客户端 - 请使用新的elastic-app-search包代替。
项目描述
⚠️ 此存储库已弃用 ⚠️
请访问https://github.com/elastic/app-search-python 以获取最新版本。感谢! - Elastic
用于构建与Elastic App Search一起使用的出色、相关搜索体验的Python客户端。
内容
入门 🐣
要安装客户端,请使用pip
python -m pip install swiftype_app_search
您也可以下载项目源代码并运行:
python setup.py install
依赖关系
用法
实例化客户端
>>> from swiftype_app_search import Client
>>> host_identifier = 'host-c5s2mj'
>>> api_key = 'private-mu75psc5egt9ppzuycnc2mc3'
>>> client = Client(host_identifier, api_key)
与App Search托管部署一起使用
客户端可以通过调整base_endpoint
和use_https
参数来配置使用托管部署。由于托管部署不依赖于host_identifier
,因此可以省略。
>>> from swiftype_app_search import Client
>>> client = Client(
api_key='private-mu75psc5egt9ppzuycnc2mc3',
base_endpoint='localhost:3002/api/as/v1',
use_https=False
)
索引:创建或更新单个文档
>>> engine_name = 'favorite-videos'
>>> document = {
'id': 'INscMGmhmX4',
'url': 'https://www.youtube.com/watch?v=INscMGmhmX4',
'title': 'The Original Grumpy Cat',
'body': 'A wonderful video of a magnificent cat.'
}
>>> client.index_document(engine_name, document)
{'id': 'INscMGmhmX4'}
索引:创建或更新多个文档
>>> engine_name = 'favorite-videos'
>>> documents = [
{
'id': 'INscMGmhmX4',
'url': 'https://www.youtube.com/watch?v=INscMGmhmX4',
'title': 'The Original Grumpy Cat',
'body': 'A wonderful video of a magnificent cat.'
},
{
'id': 'JNDFojsd02',
'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
'title': 'Another Grumpy Cat',
'body': 'A great video of another cool cat.'
}
]
>>> client.index_documents(engine_name, documents)
[{'id': 'INscMGmhmX4', 'errors': []}, {'id': 'JNDFojsd02', 'errors': []}]
索引:更新文档(部分更新)
>>> engine_name = 'favorite-videos'
>>> documents = [
{
'id': 'INscMGmhmX4',
'title': 'Updated title'
}
]
>>> client.update_documents(engine_name, documents)
获取文档
>>> engine_name = 'favorite-videos'
>>> client.get_documents(engine_name, ['INscMGmhmX4'])
[{'id': 'INscMGmhmX4','url': 'https://www.youtube.com/watch?v=INscMGmhmX4','title': 'The Original Grumpy Cat','body': 'A wonderful video of a magnificent cat.'}]
列出文档
>>> engine_name = 'favorite-videos'
>>> client.list_documents(engine_name, current=1, size=20)
{
'meta': {
'page': {
'current': 1,
'total_pages': 1,
'total_results': 2,
'size': 20
}
},
'results': [{'id': 'INscMGmhmX4','url': 'https://www.youtube.com/watch?v=INscMGmhmX4','title': 'The Original Grumpy Cat','body': 'A wonderful video of a magnificent cat.'}]
}
销毁文档
>>> engine_name = 'favorite-videos'
>>> client.destroy_documents(engine_name, ['INscMGmhmX4'])
[{'id': 'INscMGmhmX4','result': True}]
获取模式
>>> engine_name = 'favorite-videos'
>>> client.get_schema(engine_name)
{'name':'text', 'square_km': 'number', 'square_mi': 'text'}
创建/更新模式
>>> engine_name = 'favorite-videos'
>>> client.update_schema(engine_name, {'square_km': 'text'})
{'square_km': 'text'}
>>> client.update_schema(engine_name, {'square_mi': 'text'})
{'square_km': 'text', 'square_mi': 'text'}
>>> client.update_schema(engine_name, {'square_km': 'number'})
{'square_km': 'number', 'square_mi': 'text'}
列出引擎
>>> client.list_engines(current=1, size=20)
{
'meta': {
'page': {
'current': 1,
'total_pages': 1,
'total_results': 2,
'size': 20
}
},
'results': [{'name': 'favorite-videos'}, {'name': 'another-engine'}]
}
获取一个引擎
>>> client.get_engine('favorite-videos')
{'name': 'favorite-videos'}
创建一个引擎
>>> client.create_engine('favorite-videos', 'en')
{'name': 'favorite-videos', 'type': 'default', 'language': 'en'}
销毁一个引擎
>>> client.destroy_engine('favorite-videos')
{'deleted': True}
搜索
>>> client.search('favorite-videos', 'grumpy cat', {})
{'meta': {'page': {'current': 1, 'total_pages': 1, 'total_results': 2, 'size': 10}, ...}, 'results': [...]}
多搜索
>>> client.multi_search('favorite-videos', [{
'query': 'cat',
'options': { 'search_fields': { 'title': {} }}
},{
'query': 'dog',
'options': { 'search_fields': { 'body': {} }}
}])
[{'meta': {...}, 'results': [...]}, {'meta': {...}, 'results': [...]}]
查询建议
>>> client.query_suggestion('favorite-videos', 'cat', {
'size': 10,
'types': {
'documents': {
'fields': ['title']
}
}
})
{'results': {'documents': [{'suggestion': 'cat'}]}, 'meta': {'request_id': '390be384ad5888353e1b32adcfaaf1c9'}}
点击跟踪
>>> client.click(engine_name, {'query': 'cat', 'document_id': 'INscMGmhmX4'})
创建一个已签名的搜索密钥
创建一个只搜索正文字段的搜索密钥。
>>> api_key = 'private-mu75psc5egt9ppzuycnc2mc3'
>>> api_key_name = 'my-api-token'
>>> signed_search_key = Client.create_signed_search_key(api_key, api_key_name, {'search_fields': { 'body': {}}})
>>> client = Client(host_identifier, signed_search_key)
运行测试
python setup.py test
常见问题解答 🔮
我在哪里报告客户端的问题?
如果某些功能不符合预期,请打开问题。
我在哪里可以了解更多关于App Search的信息?
您最好的选择是阅读文档。
我还可以去哪里寻求帮助?
您可以查看Elastic App Search社区讨论论坛。
贡献 🚀
我们欢迎对该项目做出贡献。在您开始之前,请注意以下几点
- 在提交拉取请求之前,请创建一个问题来讨论您提案的范围。
- 请适当编写简单的代码和简洁的文档。
许可证 📗
感谢所有贡献者!
项目详细信息
关闭
swiftype_app_search-0.6.2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d830e42b229374ea11490986de4ef3b572c332daa9e0fba5095cdbfb301d9057 |
|
MD5 | a1990c34e73f557c08a19dd44ff15095 |
|
BLAKE2b-256 | 68b4595939b06f0f5cee6d3fdbdda3f2cf3c46d23c9ce2246a6972e3a4e98f02 |