我将 SOLR 配置为返回片段大小为 500 的片段。
有时,整个字段不超过 500 个字符,因此片段与字段相同。对于比这更长的字段,SOLR 只返回片段,而没有任何指示(或者看起来)该片段仅代表字段的一部分内容。这意味着片段可以在句子中间开始。
我想向用户说明他们正在查看一个片段,并且只是在此类片段的末尾和/或开头显示省略号。该功能是否内置于 SOLR 中?如果没有,您将如何插入省略号?
我最终做的是返回片段和创建片段的未更改字段。
然后我写了一些逻辑来比较两者,以确定是否应该将省略号添加到片段中,如果是,是否在片段之前、之后或之前和之后添加省略号。
我刚刚处理了同样的问题。我这样做的方法如下:
比较两者,并在需要时填写变量!
$f_ellip = NULL;
$l_ellip = NULL;
if ($orig_body_beggining != substr((string)$hl_content->str, 0, 10)) {
$f_ellip = "… ";
}
if ($orig_body_end != substr((string)$hl_content->str, 0, -10)) {
$l_ellip = " …";
}
$entry_body = $f_ellip.(string)$hl_content->str.$l_ellip;
Solr 不会返回指标,你是对的。
将您的 fragsize 设置为 501。然后在您的 UI 中使用一些快速逻辑来确定是否应显示省略号。
截断任何 501 到 500 并添加省略号。
这是另一种更好的方法。在创建索引时,添加一个已应用此逻辑的“预告片”属性。将这种努力完全排除在您的请求之外。我就是这样做的。