Alfresco 5.0.a/b d:mltext 双面

Alfresco 5.0.a/b doubled facets for d:mltext

facets 似乎不能与多语言属性一起正常工作。 我在 Alfresco 5.0.a 和 5.0.b 中对全新安装进行了简单测试:

  1. 在站点中创建了一个文本文档。
  2. 用英文描述。
  3. 已将浏览器语言更改为法语。
  4. 添加了法语版的描述。
  5. 搜索文件名。
  6. 只找到一个刚刚创建的文档。

问题是在左侧面板的描述方面我有两个描述 - 一个英语和一个法语。 两者都指向同一个文件,但逻辑上应该只有一个描述(取决于浏览器的语言)。

有人遇到过这个问题吗?这似乎是一个错误。

嗨,我不确定这是否是一个错误,但从技术上讲它看起来应该是。

多语言字段包含同一字段的多个文本定义。 Solr 索引该字段并看到有 2 个值(即使对于同一个字段),因此他从中创建了一个方面。

当然可以在 UI 中过滤掉,Alfresco 可能需要这样做(提出一个 JIRA,以便他们可以查看)。但在技术方面 faceting/filtering 它可以正常工作。

我提出了一个问题ALF-21249

并且还找到了一个解决方法,虽然有点脏,但效果很好。

假设您有一个名称为 ccm:property 的 属性,其类型为 d:mltext,并且您希望此 属性 具有英文和法文的分面。

  1. 定义具有两个 d:text 属性的方面:ccm:propertyEnccm:propertyFr
  2. 将此方面应用于类型。
  3. 设置 ccm:property 时还设置 ccm:propertyEnccm:propertyFr 属性
  4. 修改 faceted-search.get.js 中的变量 facets 以便根据用户的语言显示一个或另一个方面:
if (locale.substring(0, 2)== "fr")
  facetQName = "{http://www.ccm.com/model/ccm/1.0}propertyFr.__.u";
else
  facetQName = "{http://www.ccm.com/model/ccm/1.0}propertyEn.__.u";
facets.unshift(
{
  id: "FCTSRCH_FACET_DOCUMENT_TYPE",
  name: "alfresco/search/FacetFilters",
  config: {
    label: msg.get("faceted-search.facet-menu.facet.docType"),
    facetQName: facetQName,
    sortBy: "ALPHABETICALLY",
    hitThreshold: 1,
    minFilterValueLength: 5,
    maxFilters: 10,
    useHash: false
  }
});

完成! :)