Algolia查询生成器

algoliaqb的Python项目详细描述


一个库,用于帮助生成搜索Algolia的查询。在

此包用于algoliasearch库。在

PyPI version

问题:

我一直在做的一个应用程序有一些代码重复和增加的复杂性。这个软件包是我解决这些问题和提高可读性的一种方法。在

安装

pip install algoliaqb

过滤字符串

默认情况下,filter_map将所有输入视为字符串。这很直接。假设您有以下过滤器映射:

^{pr2}$

使用以下flask.args

{
    "group_id": 1
}

AlgoliaQB将在flask.args内查找group_id,获取该值,然后为您重新映射该键和值。在

tenant_id:1

现在让我们尝试一个带有更多过滤器的示例。在

filter_map = {
    "group_id": "tenant_id",
    "is_reported": "is_reported"
}

使用以下flask.args

{
    "group_id": 1,
    "is_reported": "true
}

返回的filter_字符串如下所示。在

tenant_id:1 AND is_reported:true

库使用示例:

fromalgoliasearch.search_clientimportSearchClientfromalgoliaqbimportAlgoliaQueryBuilderfromflaskimportrequestaqb=AlgoliaQueryBuilder(search_param="search",filter_map={"group_id":"tenant_id","is_reported":"is_reported"})# Extract the search query from our flask apps request.args var.search_query=aqb.get_search_query(request.args)# Get the filter query from our request args.filter_query=aqb.get_filter_query(request.args)# Now that we have the filter string, we just pass it into the search function.search_client=SearchClient()index=search_client.init_index("contacts")results=index.search(search_query,{"filters":filter_query})

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

推荐PyPI第三方库


热门话题
在Esper中声明Classtype实例变量并调用实例方法时未调用java实例方法   java Android真的很慢   macos在Mac上用Java播放声音   java如何在springboot中生成clientid和clientsecret并存储在数据库中?   返回假条件的java方法   数组在Java中截断同步ArrayList的正确方法   java HashMap<Long,String>和HashMap<>之间有什么区别?   正在寻找允许按名称读取列的java CSV库   HQL Hibernate查询中的java左连接   java以编程方式添加可绘制图像的最佳方法是什么?   已使用NetworkImageView下载的安卓加载图像上的java截击不起作用   java CORBA通知订阅(错误:org.omg.CORBA.MARSHAL:vmcid:0x0次要代码:0已完成:否)   Java BufferedReader openvms   java是搜索字符串中的一个字母并在字母前加上“a”的最佳算法?   由于测试依赖关系,java Gradle Spring云流项目未生成   Java程序中的数组ArrayIndexOutOfBoundsException,用于检查double是否为负数   java Android/RxJava如何链接网络请求并在失败时重试   java告诉OpenEJB忽略MDB   java如何在不迁移的情况下在room数据库中添加表