CMIS Query Full Text com caracteres especiais

cancel
Showing results for 
Search instead for 
Did you mean: 
fagnersouza
Member II

CMIS Query Full Text com caracteres especiais

Estou fazendo a seguinte query cmis:


SELECT * FROM xuxu:xuxu_conteudo
WHERE  CONTAINS('50%')


Quando executo essa query, me retorna todos documentos que têm o número 50. Independente se tem o "%".

Como eu posso fazer para que a consulta retorne essa string exata "50%"?

Obrigado

Fagner
8 Replies
rafaelscg
Active Member

Re: CMIS Query Full Text com caracteres especiais

Fagner,

O que está acontecendo é que quando você usa o "%" dessa forma, ele entende que o que você quer é pesquisa tudo o que começa com 50. Por exemplo, se você quer pesquisar qualquer documento que tenha o número "50" poderia usar "%50%". Tente usar a "\" antes do sinal de %, pois assim ele entenderá que você quer pesquisar a string exata. Sua pesquisa ficaria mais ou menos assim:


SELECT * FROM xuxu:xuxu_conteudo
WHERE CONTAINS('50\\%')


Se você quiser pesquisar tudo o que começa com "50%", seria feito dessa forma:


SELECT * FROM xuxu:xuxu_conteudo
WHERE CONTAINS('50\\%%')


Abaixo segue um link para auxilia-lo:

http://wiki.alfresco.com/wiki/CMIS_Query_Language

Teste e nos diga se funcionou.
fagnersouza
Member II

Re: CMIS Query Full Text com caracteres especiais

Rafael obrigado pela resposta.

Mas mesmo assim não funcionou, usando tanto o '50\\%' ou '50\\%%', nos dois me retorna documentos com o número 50, independentemente se tem o '%'.
Tinha testado já alguns scapes que conhecia sem sucesso.

Caso tenha outras sugestões fico agradecido.

Obrigado.

rafaelscg
Active Member

Re: CMIS Query Full Text com caracteres especiais

Fagner,

Não sei se você tentou com "\\". Quando se utiliza o CONTAINS, há a necessidade de se utilizar o "double escape". Eu editei o comentário que tinha postado pois eu não havia colocado pois não me atentei que está utilizando o CONTAINS. No link abaixo há uma parte que fala sobre essa necessidade de se utilizar o double escape:

http://wiki.alfresco.com/wiki/CMIS_Query_Language#String_Literals
fagnersouza
Member II

Re: CMIS Query Full Text com caracteres especiais

Testei utilizando CONTAINS('50\\%') mesmo assim continua listando, também, documentos que possuem só o número 50.
Qualquer outro coringa como "*", também ele não interpreta como texto. Não consigo fazer escape que ele reconheça que seja texto e não um coringa.

Obrigado pela ajuda

Fagner Souza



rafaelscg
Active Member

Re: CMIS Query Full Text com caracteres especiais

Fagner,

Realmente não estou sabendo qual o problema com o CONTAINS a principio. Porem você pode tentar com o LIKE. Pelo que entendi, você está querendo pesquisar todos os documentos que tenham "50%". Com o LIKE utilizando apenas "%50\%%" ele entende que você quer pesquisar por "50%".

Caso eu encontre a solução, posto aqui logo em seguida.
fagnersouza
Member II

Re: CMIS Query Full Text com caracteres especiais

Rafael,

Me corrija se estou errado, mas o LIKE não serve para comparar nos metadados?
Tipo:

SELECT cmis:name FROM cmis:document WHERE cmis:name LIKE '%50\%%'


Que vai pesquisar só no metadado names.

Mas no caso quero fazer uma consulta fulltext, no conteúdo do documento. Poderia fazer com LIKE? Como?


Obrigado.

Fagner
rafaelscg
Active Member

Re: CMIS Query Full Text com caracteres especiais

Fagner,

Agora eu entendi que o que você quer fazer é uma pesquisa FULL TEXT, me desculpe. Realmente eu só fiz isso com o uso de CONTAINS. Vou fazer alguns testes aqui e assim que tiver uma solução testada para isso posto aqui.
fagnersouza
Member II

Re: CMIS Query Full Text com caracteres especiais

Segundo essa resposta no fórum principal, não é suportado.
http://forums.alfresco.com/comment/133017


Att.

Fagner