跳转到主要内容

针对Emilia-Romagna地区的SOLR内容索引产品

项目描述

https://github.com/RegioneER/rer.solrpush/workflows/Tests/badge.svg

允许Plone网站进行SOLR索引/搜索的产品。

SOLR模式配置

此产品基于一些假设,并且SOLR模式需要进行特定的配置。

您可以在该产品的config文件夹中查看示例。

默认情况下,我们将所有基本Plone索引/元数据映射到SOLR,并附加一些额外字段

<field name="searchwords" type="string" indexed="true" stored="true" required="false" multiValued="true" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="showinsearch" type="boolean" indexed="true" stored="false" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="url" type="string" indexed="false" stored="true" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="site_name" type="string" indexed="true" stored="true" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="path_depth" type="pint" indexed="false" stored="true" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="path_parents" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="view_name" type="string" indexed="true" stored="true" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="@id" type="string" indexed="false" stored="true" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="@type" type="string" indexed="false" stored="true" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
<field name="title" type="text_it" indexed="false" stored="true" required="false" multiValued="false" termVectors="false" termPositions="false" termOffsets="false"/>
  • 以下关键字(searchwordsview_namepath_parentspath_depthsite_name)用于查询过滤和权重增强(见下文)。

  • showinsearch用于允许/禁止单个内容的索引。

  • url是一个索引,其中我们存储前端URL。

  • @id@typetitle · Python 包索引对于plone.restapi-like响应是必需的。

plone.restapi相关的元数据不是从Plone索引,但它们被复制到SOLR。

<copyField source="Title" dest="title"/>
<copyField source="portal_type" dest="@type"/>
<copyField source="url" dest="@id"/>

控制面板

  • Active:启用/禁用SOLR集成的标志。

  • Solr URL:SOLR核心URL。

  • 要索引到SOLR的门户类型。

  • 公开的前端URL。

隐藏的注册字段。

有一些“服务”注册字段被隐藏,不允许用户编辑它们。

  • ready:一个标志,指定产品是否就绪/初始化。它基本上表明schema.xml已经加载。

  • index_fields:是从schema.xml文件加载的SOLR字段列表。

schema.xml加载

SOLR字段直接从SOLR公开的schema.xml文件中读取。

出于性能原因,此模式存储在Plone注册表中,并在保存solr-controlpanel表单或单击“重新加载schema.xml”按钮时始终同步。

文件索引

如果Tika在SOLR上配置,您可以将其发送附件,它们将被索引为内容中的可搜索文本。

要允许附件索引,您需要为要索引的每个内容类型注册一个适配器。

File内容类型已经注册,因此您可以从那里复制。

<adapter
  for="plone.app.contenttypes.interfaces.IFile"
  provides="rer.solrpush.interfaces.adapter.IExtractFileFromTika"
  factory=".file.FileExtractor"
  />
from rer.solrpush.interfaces.adapter import IExtractFileFromTika
from zope.interface import implementer


@implementer(IExtractFileFromTika)
class FileExtractor(object):
    def __init__(self, context):
        self.context = context

    def get_file_to_index(self):
        """
        """
        here you need to return the file that need to be indexed

注意:SearchableText索引应该是多值的。

搜索配置

在solr控制面板(/@@solrpush-settings)中,有一些字段允许管理员设置一些查询参数。

‘qf’指定一个字段列表,每个字段都分配一个权重因子,以增加或减少该特定字段在查询中的相关性。

例如,如果您想给予包含搜索文本的标题中的结果比文本中的更多相关性,您可以设置如下

title^1000.0 SearchableText^1.0 description^500.0

您也可以通过searchwords提升。

bq指定一个附加的、可选的查询子句,它将添加到用户的查询中,以影响评分。例如,如果我们想提高包含特定searchwords术语的结果的评分

searchwords:something^1000

Solr将提高包含“something”的搜索词字段的结果的排名。

bf指定用于构建FunctionQueries的函数(可选权重),这些函数将作为可选子句添加到用户的查询中,以影响评分。任何由Solr本地支持的函数都可以使用,以及一个权重值。例如,如果我们想降低树中较深的项目的重要性,我们可以设置如下

recip(path_depth,10,100,1)

path_depth是一个指数,用于计算对象的树级别。

集合

有两个新的集合标准,允许在集合中通过SOLR搜索。

  • 使用SOLR进行搜索:如果选中,搜索将重定向到SOLR(默认始终在本地Plone站点上)。

  • 站点:SOLR上的Plone站点索引列表。用户可以选择在哪些站点执行查询。如果没有设置站点(或未选择此标准),则默认搜索将仅在当前站点上执行。

还有一个定制的查询构建器,可以执行对SOLR或Plone目录的查询。

SOLR的结果将被封装在类似大脑的对象中,以与集合视图完全兼容。

开发buildout

在buildout中有一个solr配置(在conf文件夹中)和一个本地构建solr实例的配方。

要使用它,只需运行

> ./bin/solr-foreground

安装

将rer.solrpush添加到buildout

[buildout]

...

eggs =
    rer.solrpush

并运行bin/buildout命令。

贡献

兼容性

此产品已在Plone 5.1和5.2上进行测试。

致谢

Regione Emilia Romagna的支持下开发;

Regione Emilia Romagna支持PloneGov项目。

作者

此产品由RedTurtle技术团队开发。

RedTurtle Technology Site

贡献者

变更日志

1.4.2 (2024-08-08)

  • 如果solr未启用且未配置,则不破坏词汇表。[cekk]

1.4.1 (2024-07-29)

  • 当出现错误时,引发自定义异常。[cekk]

1.4.0 (2024-05-05)

  • Plone6兼容性。[cekk]

1.3.3 (2023-11-08)

  • 修复RSS源。[cekk]

1.3.2 (2023-11-08)

  • 更新content_remove_error的翻译。[cekk]

1.3.1 (2023-08-01)

  • 更新翻译。[cekk]

1.3.0 (2022-09-29)

  • 添加search_enabled标志以临时禁用SOLR上的搜索。[cekk]

1.2.0 (2022-01-20)

  • 自定义缩放视图以从远程内容获取图像(处理方向)。[cekk]

1.1.0 (2021-12-22)

  • 添加路径信息的索引器。[cekk]

1.0.0 (2021-12-20)

  • 修复提升逻辑。[cekk]

  • 为提升添加不变验证。[cekk]

0.8.0 (2021-11-18)

  • SolrBrains现在如果原始内容有图像,可以返回img标签。[cekk]

0.7.1 (2021-10-14)

  • 删除未使用的视图。[cekk]

0.7.0 (2021-10-14)

  • 添加新标准:solr_portal_types以选择SOLR上索引的portal_types列表。[cekk]

  • 在用户操作中也添加Elevate控制面板的链接。[cekk]

  • 修复远程提升条件。[cekk]

0.6.4 (2021-09-27)

  • 修复QueryBuilder创建查询的方式。[cekk]

0.6.3 (2021-09-21)

  • 添加新功能:如果设置中启用了“查询调试”标志,则将SOLR查询显示给管理员。[cekk]

  • 在示例schema.xml文件(开发和测试)中,将“searchwords”设置为小写类型,以实现不区分大小写的搜索。[cekk]

  • 禁用facet.limit默认值(100)以获取所有分面。[cekk]

  • 在Keywords词汇中使用swallow_duplicates以避免SimpleTerm初始化时截断字符串导致的重复标记。[cekk]

0.6.2 (2021-07-15)

  • 在QueryBuilder中不转义查询,因为solr_search已经管理它们。[cekk]

0.6.1 (2021-06-10)

  • [修复]现在sort_on在QueryBuilder自定义中不再被忽略。[cekk]

  • [修复]在索引时,当不需要时从前端_url中删除/。[cekk]

0.6.0 (2021-05-20)

  • 添加存储在SOLR中的主题的搜索标准。[cekk]

  • 现在SOLRBrains还返回正确的内容类型图标。[cekk]

0.5.1 (2021-04-29)

  • 修复发布。[cekk]

0.5.0 (2021-04-20)

  • 在搜索调用中处理所有可能的异常。[cekk]

  • 修复POST调用中的附件编码(再次)。[cekk]

  • 在QueryBuilder中处理集合的多语言路径(使用导航根路径而不是门户路径)。[cekk]

0.4.1 (2021-03-26)

  • 修复POST调用中的附件编码。[cekk]

0.4.0 (2021-03-25)

  • 处理附件POST调用中的编码。[cekk]

0.3.4 (2021-03-18)

  • 修复日志。[cekk]

0.3.3 (2021-03-15)

  • 从控制面板中可选立即提交。[cekk]

0.3.2 (2021-02-15)

  • 处理简单的日期时间。[cekk]

0.3.1 (2021-02-11)

  • 修复tika索引参数:现在已正确索引修改和创建日期。[cekk]

0.3.0 (2021-02-09)

  • 重构提升控制面板并使用collective.z3cform.jsonwidget。[cekk]

  • 索引方面的一些改进。[cekk]

0.2.4 (2021-01-28)

  • 修复维护视图中的逻辑。[cekk]

0.2.3 (2021-01-27)

  • 修复维护同步视图。[cekk]

0.2.2 (2020-12-14)

  • 修复python2中escape_special_characters方法中的编码问题。[cekk]

  • 删除collective.z3cform.datagrifield依赖项并临时禁用提升控制面板。[cekk]

0.2.1 (2020-12-03)

  • 在查询中修复当它们已经在“solr语法”中的日期索引。[cekk]

0.2.0 (2020-12-03)

  • 为提升小部件添加样式[nzambello]

  • 重构索引器逻辑[mamico]

  • 在搜索中添加对bqqf的支持[mamico]

  • 使用tika索引文件。[cekk]

  • 添加对集合的支持。[cekk]

  • 在维护中静音嘈杂的solr日志。[cekk]

0.1.2 (2019-12-12)

  • 删除查询的嘈杂记录器。[cekk]

0.1.1 (2019-12-12)

  • 添加新索引:path_depth [cekk]

  • 修复当网站名称带有重音符号时的Unicode错误。[cekk]

0.1.0 (2019-12-05)

  • 初始发布。[cekk]

项目详情


下载文件

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

源代码分发

rer.solrpush-1.4.2.tar.gz (1.2 MB 查看哈希值)

上传时间: 源代码

构建分发

rer.solrpush-1.4.2-py3-none-any.whl (1.0 MB 查看哈希值)

上传时间: Python 3

支持