gpt4 book ai didi

solr - 将 OpenCMS 结构化内容 XML 字段映射到 SOLR 字段

转载 作者:行者123 更新时间:2023-12-05 01:29:20 25 4
gpt4 key购买 nike

我们正在尝试将 OpenCMS 结构化内容 XML 字段映射到 SOLR 字段,以便使用该字段作为过滤器来执行搜索。

XML字段在XSD文件中是这样描述的:

<xsd:complexType name="OpenCmsContrato">
<xsd:sequence>
[...]
<xsd:element name="numeroExpediente" type="OpenCmsString" minOccurs="1" maxOccurs="1" />
[...]
</xsd:sequence>
<xsd:attribute name="language" type="OpenCmsLocale" use="required"/>
</xsd:complexType>

这些是在同一个 XSD 文件中定义的元素的搜索设置:

<xsd:annotation>
<xsd:appinfo>
[...]
<searchsettings>
<searchsetting element="numeroExpediente" searchcontent="true">
<solrfield targetfield="numexp" />
</searchsetting>
</searchsettings>
[...]
</xsd:appinfo>
</xsd:annotation>

目标 SOLR 字段“numexp”在 SOLR 的 schema.xml 文件中以这种方式定义:

<fields>
<field name="numexp" type="string" indexed="true" stored="true" />
[...]
</fields>

这是我们在 JSP 文件上对 SOLR 执行查询的方式:

CmsSearchManager manager = OpenCms.getSearchManager();
CmsSolrIndex index = manager.getIndexSolr("Solr Online");

String query = "fq=type:contrato";

if (!"".equals(text))
query += "&fq=numexp:" + text;

CmsSolrResultList listFiles = index.search(cmso, query);

当我们执行这段代码时,我们得到 listFiles.size() = 0,但是当我们将过滤器字段更改为预定义的 SOLR 字段“content”时,这样:

if (!"".equals(text))
query += "&fq=content:" + text;

我们得到了预期的结果。

通过使用“内容”SOLR 字段作为过滤器的 CmsSearchResource 对象,我们能够迭代其内部 I_CmsSearchDocument 的字段,得到此列表作为结果:

id
contentblob
path
type
suffix
created
lastmodified
contentdate
relased
expired
res_locales
con_locales
template_prop
default-file_prop
notification-interval_prop
NavPos_prop
enable-notification_prop
locale_prop
NavText_prop
Title_prop
category
ca_excerpt
timestamp
score
link

列表中不存在“numexp”字段。为什么?我们缺少任何步骤吗?我们是否必须配置其他东西才能使映射工作?

最佳答案

几个月前我遇到了同样的问题。我认为这是你的问题

<searchsetting element="numeroExpediente" searchcontent="true">
<solrfield targetfield="numexp" />
</searchsetting>

你必须改成这个

<searchsetting element="numeroExpediente" searchcontent="true">
<solrfield targetfield="numexp" sourcefield="*_s" />
</searchsetting>

您必须设置 solrfield 的类型,查看不同的类型,在 SOLR 的 schema.xml 中,我为博客元素中的某些类别执行此操作。在 v9.0.1 中工作

关于solr - 将 OpenCMS 结构化内容 XML 字段映射到 SOLR 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com