![]() |
mvnForum » Listar todos los foros » » Foro: Configuración » » » Tema: Busqueda con solr en opencms 8.5 |
|
Imprimir en 30-sep-2023 14:07:53 |
Publicado por cristinagonzalez en 15-nov-2012 11:44:46 |
![]() Buenas estoy intentando replicar en mi portal la parte de /sites/default/flower-en/flower-search/ /sites/default/flower-en/flower-search-result/ pero cuando le doy a buscar no obtengo resultados he estado mirando y no se donde estan configurando el indice de búsqueda en /system/modules/com.alkacon.opencms.v8.solr/elements/ que es el elemento que se esta añadiendo en la búsquedas del default lo estoy intentando con búsquedas simples Agradecería un ejemplo básico de búsquedas con solr en opencms 8.5 |
Publicado por RobertoMS en 23-nov-2012 7:44:12 |
Re: Busqueda con solr en opencms 8.5 Buenos días Cristina. Te copio un trozo de mi wiki personal donde tengo mis apuntes sobre solr en OpenCms 8.5. ------------ Una query en solr tiene el siguiente formato: fq=category_exact:location/europe/&fq=type:v8event Si enviamos ese parámetro en una variable "query" podríamos cargar todos los resultados de la búsqueda de solr mediante el siguiente código. <c:set var="query" value="${param.query}" /> <c:if test="${!empty query}"> <cms:resourceload collector="byQuery" param="${query}" preload="true"> <cms:contentinfo var="info" /> <c:if test="${info.resultSize > 0}"> <h4><fmt:message key="v8.solr.results" /></h4> <div class="boxbody"> <cms:resourceload> <cms:resourceaccess var="res" /> <c:set var="resource" value="${res.resource}" /> <c:set var="typeId" value="${resource.typeId}" /> <c:set var="typeName"><%= OpenCms.getResourceManager().getResourceType(pageContext.getAttributesScope("typeId")).getTypeName() %></c:set> <div class="boxbody_listentry"> <div class="twocols"> <div><strong>${res.readProperties['Title']}</strong> [ <fmt:message key="v8.solr.type" />: ${typeName}, <fmt:message key="v8.solr.modified" />: <fmt:formatDate value="${cms:convertDate(resource.dateLastModified)}" dateStyle="SHORT" timeStyle="SHORT" type="both" />, <fmt:message key="v8.solr.size" />: ${res.file.length} Bytes ]</div> <div><strong><fmt:message key="v8.solr.path" />:</strong> ${resource.rootPath}</div> </div> </div> </cms:resourceload> </div> </c:if> </cms:resourceload> </c:if> Si necesitamos cargar los datos desde un cms:contentload pasamos a tener una estructura diferente. Para empezar la query a lanzar sería la siguiente: q=category_exact:municipios/cadiz/ AND type:sidocumento Para cargar los contenidos ya no usaríamos resourceload, sino el más convencional contentload. Un ejemplo sería el siguiente: <cms:contentload collector="byQuery" param="<%=query%>"> <cms:contentinfo var="info" scope="page" /> <c:if test="${info.resultSize > 0}"> <div class="documento"> <cms:contentaccess var="resource" /> <div class="documento_contenido"> <div class="documento_titulo"> <h3><a href="<cms:link>${resource.filename}</cms:link>">${resource.value.Titulo}</a></h3> </div> <div class="documento_descripcion"> <c:set var="_texto">${resource.value.Descripcion}</c:set> <% String texto = (String)pageContext.getAttribute("_texto"); boolean recortar=false; int cont = 300; if(texto.replaceAll("\\<.*?\\>", "").length()>cont){ texto = texto.replaceAll("\\<.*?\\>", ""); while(texto.charAt(cont) != ' ' && texto.charAt(cont) != '.') cont++; texto = texto.substring(0, cont); recortar = true; } %> <p><%=texto%><% if(recortar){%><a href="<cms:link>${resource.filename}</cms:link>">[...]</a><%}%></p> </div> </div> <div class="documento_enlace_bottom"><a href="<cms:link>${resource.value.Documento}</cms:link>">Descargar: ${resource.value.Titulo}</a></div> </div> </c:if> </cms:contentload> --------------------------- En ambos ejemplos he creado una variable query. En el primer ejemplo se construye así: <% String query = "fq=category_exact:location/europe/&fq=type:v8event"; %> Si necesitas más información sobre solr trataré de echarte un cable. Estoy aún un poco verde en esta parte pero trataré de ser de ayuda ![]() |
Publicado por beatrizprados3 en 17-dic-2012 13:20:48 |
Re: Busqueda con solr en opencms 8.5 Hola, cuando intento crear un índice solr con la siguiente configuración: Configuración de campos_: solr_fields Me da error: org.opencms.search.solr.CmsSolrField cannot be cast to org.opencms.search.fields.CmsSearchField ¿Sabes porqué puede ser? Gracias |