gpt4 book ai didi

sitecore - 如何让 Lucene.NET 将 2 个 Sitecore 字段合并为 1 个索引字段?

转载 作者:行者123 更新时间:2023-12-02 22:11:56 25 4
gpt4 key购买 nike

我正在使用 Lucene.NET 和 Sitecore 进行搜索。我创建了一个自定义 Lucene 索引。通常它是 Sitecore 字段和 Lucene 索引字段之间的一对一映射。我希望能够获取 2 个字段并将它们合并到 Lucene 索引中。下面是我的自定义索引定义的示例。您将看到一个名为“事件”的字段和一个名为“董事会”的字段。下面是我正在尝试做的一个示例 - 将“事件”和“董事会”合并到索引中的一个字段中。我只是不确定这是否可能,如果可以,定义这样的组合字段的语法是什么。有什么想法吗?

        <index id="reportsIndex" singleInstance="true" type="IOM.library.CustomIndexer, IOM">
<param desc="name">$(id)</param>
<template hint="list:AddTemplate">
<template>{79EBE484-BAD6-4173-B80A-29AC7D734565}</template>
</template>
<fields hint="raw:AddField">
<field target="Title">Title</field>
<field target="SortTitle" storage="keyword">Title</field>
<field target="ShortDescription">ShortDescription</field>
<field target="FullDescription">FullDescription</field>
<field target="Topic">Topic</field>
<field target="Type">Type</field>
<field target="ReleaseDate">ReleaseDate</field>
<field target="Series">Series</field>
<field target="Activity">Activity</field>
<field target="Board">Board</field>
<field target="MyCombinedField">??Activity, Board??</field>
</fields>
</index>

更新:我尝试按照人们的建议进行操作,并将 2 个不同的 Sitecore 字段映射到同一个 Lucene 字段。但这似乎不起作用。我尝试了以下方法:

<index id="reportsIndex" singleInstance="true" type="IOM.library.CustomIndexer, IOM">
<param desc="name">$(id)</param>
<template hint="list:AddTemplate">
<template>{79EBE484-BAD6-4173-B80A-29AC7D734565}</template>
</template>
<fields hint="raw:AddField">
<field target="Title">Title</field>
<field target="Activity">Activity</field>
<field target="Board">Board</field>
<field target="MyCombinedField">Activity</field>
<field target="MyCombinedField">Board</field>
</fields>
</index>

当我查看 IndexViewer 时,这就是我看到的。如果内容项具有“事件”字段的内容,那么该内容将填充在“MyCombinedField”中(因为它是第一个)。如果 Activity 字段没有内容,那么 Lucene 将使用 Board 内容填充“MyCombinedField”。但它永远不会将两个字段的内容放入 MyCombinedField 字段。我做错了什么吗?

最佳答案

您必须使用旧的数据索引。您运行的是 Sitecore 6.5 之前的版本吗?您可以考虑重写代码以使用 Sitecore.Search。

无论如何,您可以通过类似于以下的方式在同一个 Lucene 字段中索引多个 Sitecore 字段:

<index id="system" singleInstance="true" type="Sitecore.Data.Indexing.Index, Sitecore.Kernel">
<param desc="name">$(id)</param>
<fields hint="raw:AddField">
<field target="name">@name</field>
<field target="name">__created</field>
<field target="name">@tid</field>

在这种情况下,项目名称、创建日期字段和模板 ID 都在同一字段中建立索引。

简而言之:只需创建具有相同目标属性的多个字段元素

关于sitecore - 如何让 Lucene.NET 将 2 个 Sitecore 字段合并为 1 个索引字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20645073/

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