我将 SOLR 配置为返回 fragsize 为 500 的片段。

有时,整个字段不超过 500 个字符,因此片段与字段相同。对于长于该长度的字段,SOLR 仅返回片段,而没有任何指示(或者看起来如此)该片段仅代表字段内容的一部分。这意味着该片段可以从句子中间开始。

我想让用户清楚地知道他们正在查看一个片段,并且只需在此类片段的末尾和/或开头显示省略号。该功能是否内置于 SOLR 中?如果没有,您将如何插入省略号?

有帮助吗?

解决方案

我什么结束了做返航两个片段和该片段的创建未改变的字段。

我然后写了一些逻辑比较的两个,以确定是否省略号应该被添加到所述片段,并且如果是这样,是否之后或之前和之后的片段之前添加它,。

其他提示

Solr的不会返回一个指标,你说得对。

设置fragsize到501然后在你的UI逻辑的快速位,以确定是否省略号应显示与否。

截断任何501至500和附加省略号。

我刚刚处理了同样的问题。我这样做的方法如下:

  1. 获取原始字符串
  2. 获取原始字符串的前 10 个字符和后 10 个字符
  3. 获取 Solr 搜索返回的片段的前 10 个字符和后 10 个字符
  4. 比较两者,并在需要时填写变量!

    $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;
    

下面是另一个更好的办法。在创建索引,添加具有这种逻辑已经应用了“传情”属性。推动这一努力你的要求完全。这正是我将如何做到这一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top