【发布时间】:2013-12-13 16:24:27
【问题描述】:
我想动态地向用户显示哪个字段与发送到 Solr 的查询匹配。例如,如果我有一个文档
document
field1: "yay"
field2: "nay"
dynamic_field_hurr_*:
one: "yay"
two: "nay"
我查询了“yay”,我是否可以知道在 field1 和 dynamic_field_hurr_one 中找到了 yay?
我觉得我已经阅读了整个文档,并认为我应该为此使用突出显示,但我无法让它在动态字段上工作。在普通领域它工作正常!
一点背景知识:我正在使用 Solr.Net,在我映射到我的文档的课程中,我有一个 IDictionary<string, string> 来动态添加其他信息。经过一番阅读,我发现字典映射到动态字段,它工作得很好,除了突出显示。
我还尝试将动态字段中的所有数据复制到文本字段中,但我认为没有办法复制“实际字段名称”?我只能让 Solr 复制该值,我认为这是有道理的。
有什么想法吗?
【问题讨论】:
-
我们对 动态字段 使用相同的方法以及 @arun 提到的 copyFields,它按预期工作。如果这不适用于您的情况,请提供其他信息,例如:solr 版本、突出显示选项 等。
-
事实上,您不能对动态字段使用高亮显示,但您可以使用 Field API 将动态字段转换为显式字段,以便使用此功能。看this,这是LucidWorks的一个选项
-
@Osy 当然可以……如果您明确将它们定义为 edismax 搜索字段(用于搜索)和 hl 字段用于突出显示。
-
关于这个案例我可以说的最后一点,没有更多细节 - 确保这些动态字段已存储,因为没有它突出显示将无法工作 - @987654322 @.