Inicio de mvnForum

Imprimir en 30-sep-2023 14:07:53
Publicado por cristinagonzalez en 15-nov-2012 11:44:46
confused   Busqueda con solr en opencms 8.5
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 wink

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