Pregunta

He configurado SOLR a fragmentos de retorno con un fragsize de 500.

A veces, todo el campo es de 500 caracteres o menos, por lo que el fragmento es idéntico al campo. Para los campos que son más largos que eso, SOLR sólo devuelve el fragmento sin ninguna indicación (o por lo que parece) que el fragmento representa sólo una parte del contenido de un campo. Eso significa que el fragmento podría empezar a mitad de la frase.

Quiero dejar claro a los usuarios que están viendo un fragmento y simplemente visualizar puntos suspensivos al final y / o inicio de un fragmento de este tipo. Es que la funcionalidad incorporada en la SOLR? Si no es así, ¿cómo usted va sobre la inserción de puntos suspensivos?

¿Fue útil?

Solución

Lo que terminé haciendo fue devolver tanto el fragmento y el campo inalterado desde que se creó el fragmento.

I a continuación, escribió cierta lógica que compara los dos con el fin de determinar si elipsis debe añadirse al fragmento y si es así, si desea añadir antes, después o tanto antes como después del fragmento.

Otros consejos

Solr no devolverá un indicador, que tienes razón.

Fija tu fragsize a 501. Entonces es un poco rápida de la lógica en la interfaz de usuario para determinar si se debe mostrar la elipsis o no.

Truncar nada 501 a 500 y puntos suspensivos complemento.

Yo sólo traté con el mismo problema. La forma en que fui a hacer esto es el siguiente:

  1. Obtener la cadena original
  2. obtener tanto los primeros y últimos 10 caracteres de la cadena original
  3. obtener tanto los primeros y últimos 10 caracteres del fragmento devueltos por la búsqueda Solr
  4. Comparar ambos, y relleno en una variable cuando sea necesario!

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

Aquí hay otro método mejor. Al crear el índice, añadir un atributo de "gancho" que tiene esta lógica ya aplicado. Empuje que el esfuerzo de sus peticiones por completo. Eso es exactamente cómo iba a hacer esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top