cancel
Showing results for 
Search instead for 
Did you mean: 

Lucene no encuentra resultados que contienen espacios

magarcia_sm
Star Contributor
Star Contributor

Hola, 
Estoy realizando una búsqueda a partir de 2 valores, estos valores a veces contienen espacios. Si los valores no contienen espacios me devuelve el resultado correctamente, en cambio si contiene espacios no me devuelve nada. 

Ejemplo:

var numFactura = args.nFact;
var cif = args.cPro;

var qpath = "+PATH:\"app:company_home//*\"";
var qcontent = " +@\\{http\\://www.alfresco.org/model/content/1.0\\}content.mimetype:application/pdf";
var qnumFact = " +@fra\\:NumFactura:" + numFactura;
var qcifPro = " +@fra\\:CIF:" + cif;
var strq = qpath + qcontent + qnumFact + qcifPro;

var content = search.luceneSearch(strq);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

He probado algunas soluciones que proponen en otros post como utilizar la codificación ISO9075Encode pero sigue sin funcionar.

var queryEncoded = search.ISO9075Encode(strq);‍‍
var content = search.luceneSearch(queryEncoded);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

O pasar solamente los valores.

numFactura = search.ISO9075Encode(numFactura);
cif = search.ISO9075Encode(cif);‍‍

Pero sigo sin recibir resultados. 
¿Alguna idea de porque me esta pasando esto?

Muchas gracias.

23 REPLIES 23

cesarista
World-Class Innovator
World-Class Innovator

magarcia_sm _ Que subsistema de búsqueda utilizas ? Lucene o SOLR ? Que versión de Alfresco utilizas ? 

Saludos.

--C.

Como motor de búsqueda utilizo Lucene y la versión de Alfresco es la 4.2.f

cristinamr
World-Class Innovator
World-Class Innovator

Buenas. Una pregunta muy básica: ¿A través de buscador te devuelve resultados con espacios? Es para descartar otros posibles problemas.

Un saludo.

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

Así es Cristina, si realizo la búsqueda con espacios en el buscador me devuelve correctamente el resultado.

Como solución temporal estoy realizando la búsqueda de la forma que me comentó Cesar anteriormente, creando una query formada por todas las separaciones que crean los espacios, de esta forma si obtengo el resultado deseado, pero me gustaría encontrar una solución al problema para evitar código innecesario y tan chapucero .

if (numFactura.indexOf(" ") >= 0) {
   var elementos = numFactura.split(" ");
   for (var i = 0; i < elementos.length; i++) {
      queryNumFactura = queryNumFactura + " +@fra\\:NumFactura:*" + elementos[i] + "*";
   }
} else {
queryNumFactura = " +@fra\\:NumFactura:" + numFactura;
}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

cristinamr
World-Class Innovator
World-Class Innovator

Si te funciona en el buscador entonces el problema no es a nivel de modelo de datos. Debe ser en la codificación de Javascript o similar. ¿Podríamos hablar? Quizás por hangouts o Skype? Así te digo algunas pruebas para tratar de identificar donde viene el problema. Además yo tengo una instalación limpia de la 4.2.f así que podríamos ir viendo a la vez, dónde está el problema 😉 Mandame privado y lo vemos. Y si damos con el problema lo ponemos en el hilo para que sirva a posteriori ^^

Un saludo,

Cristina.

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

Muchas gracias por tu interés Cristina.

Intenté enviarte un privado pero necesito que me hagas following para poder enviartelo. 

cristinamr
World-Class Innovator
World-Class Innovator

Hecho 😉

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

cristinamr
World-Class Innovator
World-Class Innovator

Te cuento las pruebas que hecho (e intento colgarte alguna captura para que lo veas)

A ver, he hecho la siguiente prueba en un Alfresco 4.2.f limpio: Con administrador he ido al sitio de pruebas que tiene Alfresco (http://localhost:8080/share/page/site/swsdp😞

He ido a la project library y he creado 3 txt con los siguientes nombres: A43 234.34, A43 234.35 y A43 234.36


Una vez creado, arriba a la derecha introduzco en la búsqueda A43 234.34 y en el resultado me devuelve 3 resultado: Primero el A43 234.34 y a continuación A43 234.35 y A43 234.36. También he lanzado A43 234.35, y A43 234.36 y siempre el primer resultado es el correcto (entiendo que le da prioridad):

Test1)

Test2)

Test3)


Es más, si pongo entre comillas el termino, sólo me devuelve 1 resultado (el correcto):

¿Puedes reproducir tal cual estas pruebas y decirme? Si aun así sigue sin funcionar o te da otros resultados entonces debe ser algo de configuración en tu Alfresco. Cuéntame los resultados y vamos viendo. Vamos a intentar acotar dónde está el problema a ver si damos con la solución 🙂

¡Un saludo!

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

Hola Cristina, 

He reproducido las pruebas tal cual me comentas y el resultado es el mismo que el tuyo. (Esto desde la búsqueda avanzada de Alfresco).

Aparte de la "Búsqueda Avanzada" yo tengo mi plantilla personalizada para "Búsqueda de Facturas" ya que tengo un modelo personalizado para estas. Si intento reproducir la búsqueda anterior desde "Búsqueda de Facturas" los resultados ya no son los mismos. Si busco A43 234.34 me devuelve 3 resultados (A43 234.34, A43 234.35, A43 234.36). En cambio si lo pongo entre comillas "A43 234.34", no me devuelve ningún resultado.

¿Habrá que definir el comportamiento de la búsqueda en el custom model o algún otro archivo de configuración?
Añado también mi custom model.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Custom Model -->
<!-- Note: This model is pre-configured to load at startup of the Repository. So, all custom -->
<!-- types and aspects added here will automatically be registered -->
<model name="fra:facturaModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!-- Optional meta-data about the model -->
<description>Custom Model</description>
<author></author>
<version>1.0</version>
<imports>
<!-- Import Alfresco Dictionary Definitions -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<!-- Import Alfresco Content Domain Model Definitions -->
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
</imports>
<!-- Introduction of new namespaces defined by this model -->
<!-- NOTE: The following namespace custom.model should be changed to reflect your own namespace -->
<namespaces>
<namespace uri="FacturaModel.model" prefix="fra"/>
</namespaces>
<constraints>
<constraint name="fra:valoresEstado" type="LIST">
<parameter name="allowedValues">
<list>
   <value>Revisar</value>
   <value>Aprobada</value>
   <value>Rechazada</value>
   <value>Revisar_eFra</value>
</list>
</parameter>
</constraint>
</constraints>
<types>
<type name="fra:facturas">
<title>Facturas</title>
<parent>cm:content</parent>
<properties>
<property name="fra:digitalizador">
<title>Digitalizador</title>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="fra:nombreEmpresa">
<title>Nombre o Razón Social</title>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="fra:fecha">
<title>Fecha Factura</title>
<type>d:date</type>
<mandatory>true</mandatory>
</property>
<property name="fra:fechaOperaciones">
<title>Fecha de realización de las operaciones</title>
<type>d:date</type>
<mandatory>true</mandatory>
</property>
<property name="fra:numFactura">
<title>Número Factura</title>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="fra:cif">
<title>CIF Empresa Emisora</title>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name="fra:base">
<title>Base Imponible</title>
<type>d:double</type>
<mandatory>true</mandatory>
</property>
<property name="fra:d1Base21">
<title>Base Imponible IVA 21%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:d1Base12">
<title>Base Imponible IVA 12%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:d1Base105">
<title>Base Imponible IVA 10.5%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:d1Base10">
<title>Base Imponible IVA 10%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:d1Base4">
<title>Base Imponible IVA 4%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:d1Base0">
<title>Base Imponible IVA 0%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:iva">
<title>IVA total</title>
<type>d:double</type>
<mandatory>true</mandatory>
</property>
<property name="fra:iva21">
<title>IVA 21%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:iva12">
<title>IVA 12%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:iva105">
<title>IVA 10.5%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:iva10">
<title>IVA 10%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:iva4">
<title>IVA 4%</title>
<type>d:double</type>
<mandatory>false</mandatory>
</property>
<property name="fra:reApply">
<title>Aplicar Recargo de Equivalencias</title>
<type>d:boolean</type>
<default>false</default>
</property>
<property name="fra:reImporte">
<title>Importe total del recargo</title>
<type>d:double</type>
</property>
<property name="fra:d1RE52">
<title>Recargo de Equivalencias del 5.2%</title>
<type>d:double</type>
</property>
<property name="fra:d1RE14">
<title>Recargo de Equivalencias del 1.4%</title>
<type>d:double</type>
</property>
<property name="fra:d1RE05">
<title>Recargo de Equivalencias del 0.5%</title>
<type>d:double</type>
</property>
<property name="fra:irpfApply">
<title>Aplicar IRPF</title>
<type>d:boolean</type>
<default>false</default>
</property>
<property name="fra:irpfImporte">
<title>Importe total IRPF</title>
<type>d:double</type>
</property>
<property name="fra:total">
<title>Total</title>
<type>d:double</type>
<mandatory>true</mandatory>
</property>
</properties>
</type>
</types>

<aspects>
<!-- Definition of new Content Aspect: Customer Details -->
<!-- Especifica si un documento tiene ocr o no para moverlo a Revisar o a Leer factura -->
<aspect name="fra:ocr">
<title>OCR</title>
<properties>
<property name="fra:ocrApply">
<title>Aplicar OCR</title>
<type>d:boolean</type>
<default>true</default>
</property>
<property name="fra:cifEmpresa">
<title>CIF Empresa</title>
<type>d:text</type>
</property>
<property name="fra:userName">
<title>Usuario</title>
<type>d:text</type>
</property>
</properties>
</aspect>
<!-- Aspecto para asignar al espacio donde se escanearan los documentos. Se utilizara
para el evaluator de la accion escanear -->

<aspect name="fra:scan">
<title>Escanear</title>
<properties>
<property name="fra:scanSpace">
<title>Escanear</title>
<type>d:boolean</type>
<default>true</default>
</property>
</properties>
</aspect>

<aspect name="fra:espacioAbierto">
<title>Periodo Abierto</title>
<properties>
<property name="fra:abierto">
<title>Periodo Abierto</title>
<type>d:boolean</type>
<default>true</default>
</property>
</properties>
</aspect>

<aspect name="fra:revisarDocumento">
<title>Revisar Factura</title>
<properties>
<property name="fra:revisar">
<title>Revisar Documento</title>
<type>d:boolean</type>
<default>true</default>
</property>
<property name="fra:estado">
<title>Estado</title>
<type>d:text</type>
<constraints>
<constraint ref="fra:valoresEstado"/>
</constraints>
</property>
</properties>
</aspect>

<aspect name="fra:certificado">
<title>Certificado Digital</title>
<properties>
<property name="fra:clave">
<title>Clave</title>
<type>d:text</type>
</property>
<property name="fra:cifDescarte">
<title>CIF Descarte</title>
<type>d:text</type>
</property>
<property name="fra:applyRE">
<title>Recargo de Equivalencia</title>
<type>d:boolean</type>
</property>
</properties>
</aspect>

</aspects>
</model>‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

 

cristinamr
World-Class Innovator
World-Class Innovator

¡Qué buena noticia! Entonces no es problema de tu Alfresco, debe ser que algo de lo que despliegas que no esté bien definido o similar 🙂 ¿Podrías pasarme todos los archivos que despliegas para echarles un vistazo y echarlo a andar en mi Alfresco? A ver si veo algo raro. Te he pasado por privi mi email.

Un saludo,

Cristina.

--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc