Inicio de mvnForum Bienvenido Guest   | Iniciar sesión
  Búsqueda  
  Indice  | Temas Recientes  | Quién Está en Línea  | Lista de Usuarios  | Nuevo Usuario  | Búsqueda  | Ayuda  | RSS feeds


Ir a »
Estado del tema: Normal
Total de mensajes en este tema: 4
[Añadir a Mis Favoritos] [Añadir un aviso a este tema] [Publicar nuevo tema]
Autor
Tema Anterior Este tema ha sido visto 5681 veces y tiene 3 respuestas Tema Siguiente
Femenino lcouso
Advanced Member



Ingresó: 24-jul-2009
Mensajes: 100
Estado: Desconectados

shock   Búsquedas dentro del contexto (Solr) Responder a este mensaje
Responder citando

Buenos días chic@s¡¡

Me han pedido que en los resultados del buscador, salga una pequeña descripción resaltando el texto buscado en negrita, por cada uno de los resultados.

Lo que he hecho es buscar, por cada contenido devuelto, el mismo texto en los mismos campos que busca el indice. Total, que abro cada uno de los contenidos, busco el texto y lo imprimo por pantalla.

Sé que hay una manera más fácil de hacerlo, pero no consigo que me funcione.
Se supone que utilizando getExcerpt(), debería sacarme el contexto.

CmsSearchResult entry = (CmsSearchResult)lista.get(i);
pathResuorce =msObject.getRequestContext().removeSiteRoot(entry.getPath());
CmsResource recurso = cmsObject.readResource(pathResuorce);
%><!--desc:<%=entry.getDescription()%>--><%
%><!--contexto:<%=entry.getExcerpt()%>--><%

Ni siquiera me saca la descripción crying
En la configuración de campos, del índice, tengo marcado
- Indice: True
- Almacenar: OK
- Extracto: OK

El índice funciona, me saca los resultados correctamente. Pero no consigo que me devuelva el Contexto.
Que más cosas tengo que tener en cuenta???

Muchas Gracias¡¡¡¡
[19-sep-2016 11:54:59] Mostrar la Versión Imprimible        Send Private Message [Enlace] Reportar mensaje ofensivo: por favor inicie sesión primero  Ir al inicio 
Masculino sergio
Administrador
Avatar del Miembro

España
Ingresó: 27-sep-2006
Mensajes: 2470
Estado: Desconectados
Re: Búsquedas dentro del contexto (Solr) Responder a este mensaje
Responder citando

Buenas!

Para que te funcione el getExcerpt(), la búsqueda tienes que usar el parámetro "q" y no el fq, por ejemplo, tu query tiene que ser algo como: ?q=content:"Mi query"

De esta forma el resultado de solr debe venirte con un campo excerpt.

Para la descripción, si estás guardando la descripción en la propiedad puedes usar el field: Description_prop

Espero que te sirva.
----------------------------------------
---------------------------------------------------
Sergio Rapos Vargas.
Administrador de OpenCmsHispano.
sergio.raposo@opencmshispano.es
[19-sep-2016 13:36:42] Mostrar la Versión Imprimible        Send Private Message [Enlace] Reportar mensaje ofensivo: por favor inicie sesión primero  Ir al inicio 
Femenino lcouso
Advanced Member



Ingresó: 24-jul-2009
Mensajes: 100
Estado: Desconectados

Re: Búsquedas dentro del contexto (Solr) Responder a este mensaje
Responder citando

Y donde se definen esos parametros??
Tengo que construir yo la query solr?? ¿Donde?

Estoy muy perdida...
[19-sep-2016 17:46:50] Mostrar la Versión Imprimible        Send Private Message [Enlace] Reportar mensaje ofensivo: por favor inicie sesión primero  Ir al inicio 
Femenino lcouso
Advanced Member



Ingresó: 24-jul-2009
Mensajes: 100
Estado: Desconectados

applause   Re: Búsquedas dentro del contexto (Solr) Responder a este mensaje
Responder citando

Ya he podido solucionar este tema, lo pongo por escrito para que pueda ayudar a otras personas.

En la configuración de campos, le ha dado un valor a "Nombre a mostrar" a cada uno de los campos.
El campo que contiene la asociación "content" le he marcado como "Extracto".

En la jsp, creo una query que compare con todos los campos declarados en la administración (En mi caso Titulo y Textos --> nombres que les hayas dado en "Nombre a mostrar").



String term = request.getParameter("term");
String query = " +( Titulo :" + term +" Textos:" +term +")";
CmsSearch search = new CmsSearch();
search.init(cmsObject);
search.setMatchesPerPage(9999999);
search.setSearchPage(1);
search.setIndex("nombre_indice");
search.setQuery(query);

lista = search.getSearchResult();
for(int i = 0 ;i < lista.size(); i++ ){
String resFinal = "";
CmsSearchResult entry = (CmsSearchResult)lista.get(i);
CmsProperty auxProperty = cmsObject.readPropertyObject(recurso,"Title",false);
valorTitulo = auxProperty.getValue();
resFinal=entry.getExcerpt();

out.println("Titulo:" + valorTitulo);
out.println("Resumen:" + resFinal);
}


Más o menos es eso.
Espero que os sirva.

Un Saludo
[21-sep-2016 13:16:17] Mostrar la Versión Imprimible        Send Private Message [Enlace] Reportar mensaje ofensivo: por favor inicie sesión primero  Ir al inicio 
[Versión imprimible] [Publicar nuevo tema]