跳转到主要内容

此立方体使用postgresql文本搜索向量实现分面。

项目描述

摘要

此立方体使用postgresql文本搜索向量实现分面。

这个立方体提供了什么?

这个立方体定义了一个新的CubicWeb AppObject注册: tsfacets。基类是 cubicweb_tsfacets.views.TSFacets;它提供了三个方法,允许在CubicWeb应用程序中使用分面。

  • get_facets_values_with_count,它检索所有可用的分面以及每个值过滤了多少目标实体;
  • get_target_entities_count,它统计考虑所选分面以及可能的RQL请求以限制结果的目标实体数量;
  • get_target_entities_rset,它根据所选分面以及可能的RQL请求构建CubicWeb ResultSet以限制结果。

如何使用它?

对于每个分面组,您必须定义 cubicweb_tsfacets.views.TSFacets 的子类。然后,您必须完成以下属性

  • key_names_to_rql_definition:将每个分面键与RQLRequestFacetDef对象关联的字典。分面键必须只包含字符,没有空格,没有".",没有"_"等。此对象表示一个包含是否需要映射表以映射值信息的RQL请求。如果需要索引包含空格或其他字符(如"'")的字符串,则需要映射;
  • text_search_indexation:一个RQL请求,返回一个包含元组的列表:(目标实体eid,用于全文搜索的索引文本)。此属性是可选的,并且仅在您想将文本搜索添加到结果列表时使用。注意:此功能将在即将推出的版本中添加;
  • target_etypes:哪些实体类型是分面搜索的目标;
  • table_name:特定postgresql表的名字。

实现示例

在这个例子中,我们想在Performance实体中添加分面。这些分面将是代表的城市、国家、剧院、代表日期和导演。

from cubicweb_tsfacets.views import TSFacets, RQLRequestFacetDef


class PerformanceTSFacets(TSFacets):
    __regid__ = "performance_tsfacets"
    table_name = "performance_tsfacets"

    key_names_to_rql_definition = {
        "city": RQLRequestFacetDef("Any X, R Where X representation_city R", True),
        "country": RQLRequestFacetDef("Any X, R Where X representation_country R", True),
        "theater": RQLRequestFacetDef("Any X, R Where X representation_theater R", True),
        "date": RQLRequestFacetDef("Any X, D Where X formatted_start_date D", False),
        "director": RQLRequestFacetDef(
          "Any X, D Where X is Performance, C manifestation X, "
          "C contributor D, C role R, R code 500",
          False
        ),
    }

    target_etypes = {"Performance"}

因此,CubicWeb-TSFacets将提供我们构建界面所需的方法。

项目详情


下载文件

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

源代码发行版

cubicweb_tsfacets-0.7.1.tar.gz (12.7 kB 查看哈希值)

上传时间 源代码

构建发行版

cubicweb_tsfacets-0.7.1-py3-none-any.whl (14.7 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面