[plonegov-br] Problemas com a busca multifacetada

Leandro Koiti Sato shogunbr em gmail.com
Quinta Abril 28 13:28:17 BRT 2016


Olá, Clayton.

Eu já havia testado sitecustomize.py  para contornar o problema, mas pelo
que eu li na documentação do Plone [1], isso não é recomendável.

Minha descrição do e-mail anterior está errada. Fiz outros testes e tanto o
Plone normal quanto o portal padrão dão o erro ao fazer uma query com
Unicode.
O problema é que no Plone normal, a consulta do faceted é feita assim (para
a busca por "Campo Mourão"):

'query': 'Campo Mour\xc3\xa3o'

No portal padrão, o faceted passa a fazer a consulta assim:

'query': u'Campo Mour\xe3o'

Alguma coisa no portal padrão muda esse comportamento da busca faceted,
gerando o erro.


[1] http://docs.plone.org/manage/troubleshooting/unicode.html


--
Leandro Koiti Sato


2016-04-28 10:40 GMT-03:00 Clayton <claytonc.sousa em gmail.com>:

> Leandro,
>
> Esse problema "UnicodeDecodeError: 'ascii' codec ...", é um velho problema
> nas instalações do Plone.
>
> A solução é a seguinte crie um arquivo chamado "sitecustomize.py" no
> caminho seu_python_virtual_do_buildout/lib/python2.7/sitecustomize.py com o
> seguinte conteúdo:
>
> import sys
> sys.setdefaultencoding('utf-8')
>
> Depois de criado reinicie as instâncias.
>
> Você pode deixar configurado no seu buildout para futuras instalações como
> eu já faço a bastante tempo.
>
> parts =
>     ...
>     commands
>
> [commands]
> # https://pypi.python.org/pypi/plone.recipe.command
> recipe = plone.recipe.command
> command =
>     export ENV_PATH=${buildout:directory}/../Python-2.7
>     echo "import sys; sys.setdefaultencoding('utf-8')" >
>  $ENV_PATH/lib/python2.7/sitecustomize.py
> update-command = ${:command}
>
> abraços,
>
> Clayton
>
>
>
> Em 28 de abril de 2016 10:04, Leandro Koiti Sato <shogunbr em gmail.com>
> escreveu:
>
>> Informação adicional: o problema ocorre quando algum conteúdo do portal
>> esteja tagueado com acentos, no caso, o portal padrão já vem povoado alguns
>> itens com a tag "Previdência Social".
>> Se excluirmos todos os itens com tags com acentos, não gera erro.
>> Entretanto, não é problema só com a tag pré-povoada, já que se criarmos
>> outras tags com acentos, volta a dar o erro.
>>
>> Esse problema não ocorre em uma instalação do Plone com o EEA Faceted,
>> sem a instalação do portal padrão.
>> No Plone normal, é possível fazer buscas, tipo:  {'Subject': {'operator':
>> 'or', 'query': u'Tag 1'}}, mesmo existindo tags com acento no catalog.
>>
>> Já se fizermos a mesma busca no portal padrão e existir alguma tag com
>> acentos, ele vai dar o UnicodeDecodeError.
>>
>> Acredito que  alguma modificação do portal padrão esteja misturando
>> unicode e strings no índice "Subject" do Catalog.
>>
>> Alguém consegue verificar isso?
>>
>>
>> --
>> Leandro Koiti Sato
>> shogunbr em gmail.com
>>
>>
>> 2016-04-26 13:27 GMT-03:00 Leandro Koiti Sato <shogunbr em gmail.com>:
>>
>>> Boa tarde, pessoal.
>>>
>>> Estou com problemas na busca multifacetada.
>>> Criei uma busca com o widget de checkboxes para buscar no índice de
>>> Tags, operador OR.
>>> Como exemplo, vou usar o vocabulário brasil.gov.tipos, mas o erro dá em
>>> vocabulários criados com o ATVocabularyManager, ou nos outros vocabulários
>>> pré-existentes.
>>> Coloquei um widget de debug, para ver a busca que ele faz.
>>>
>>> Ao selecionar apenas um dos itens dos checkboxes, por exemplo, 'Arquivo'
>>> (File).
>>> Ele vai gerar uma consulta:
>>>
>>> {'Language': ['pt-br', ''],
>>>  'Subject': {'operator': 'or', 'query': u'File'},
>>>  'facet.field': [u'Subject'],
>>>  'sort_on': u'effective',
>>>  'sort_order': 'descending'}
>>>
>>> Isso faz com que a busca não retorne nada como resultado e gera um erro
>>> no log:
>>>
>>> 2016-04-26 17:45:06 ERROR eea.facetednavigation.browser.app.query
>>> 'ascii' codec can't decode byte 0xc3 in position 6: ordinal not in
>>> range(128)
>>> Traceback (most recent call last):
>>>   File
>>> "/home/plonegovbr/portal.buildout/eggs/eea.facetednavigation-8.9-py2.7.egg/eea/facetednavigation/browser/app/query.py",
>>> line 144, in query
>>>     brains = catalog(self.context, **query)
>>>   File
>>> "/home/plonegovbr/portal.buildout/eggs/eea.facetednavigation-8.9-py2.7.egg/eea/facetednavigation/search/catalog.py",
>>> line 110, in __call__
>>>     return search(**newquery)
>>>   File
>>> "/home/plonegovbr/portal.buildout/eggs/Products.CMFPlone-4.3.7-py2.7.egg/Products/CMFPlone/CatalogTool.py",
>>> line 393, in searchResults
>>>     return ZCatalog.searchResults(self, REQUEST, **kw)
>>>   File
>>> "/home/plonegovbr/portal.buildout/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/ZCatalog/ZCatalog.py",
>>> line 604, in searchResults
>>>     return self._catalog.searchResults(REQUEST, used, **kw)
>>>   File
>>> "/home/plonegovbr/portal.buildout/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/ZCatalog/Catalog.py",
>>> line 925, in searchResults
>>>     return self.search(args, sort_index, reverse, sort_limit, _merge)
>>>   File
>>> "/home/plonegovbr/portal.buildout/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/ZCatalog/Catalog.py",
>>> line 545, in search
>>>     r = _apply_index(query, rs)
>>>   File
>>> "/home/plonegovbr/portal.buildout/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/PluginIndexes/common/UnIndex.py",
>>> line 403, in _apply_index
>>>     s = index.get(k, None)
>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6:
>>> ordinal not in range(128)
>>>
>>>
>>>
>>> Ao selecionar dois ou mais itens no checkbox, ele gera uma busca:
>>>
>>> {'Language': ['pt-br', ''],
>>>  'Subject': {'operator': 'or', 'query': ['File', 'Audio']},
>>>  'facet.field': [u'Subject'],
>>>  'sort_on': u'effective',
>>>  'sort_order': 'descending'}
>>>
>>> Neste caso, não dá nenhum erro e a busca retorna normalmente as páginas
>>> com as respectivas tags.
>>> Alguém tem alguma ideia de como resolver isso?
>>>
>>> Quais versões do portal padrão, busca multifacetada e eea faceted
>>> navigation estão rodando no site da SECOM e Planalto que tem a busca
>>> funcionando?
>>>
>>> Meu ambiente:
>>> Portal Padrão 1.1.4
>>> Plone 4.3.7 (4311)
>>> CMF 2.2.9
>>> Zope 2.13.23
>>> Python 2.7.3 (default, Mar 13 2014, 11:03:55) [GCC 4.7.2]
>>> PIL 2.7.0 (Pillow)
>>>  .gov.br: Busca Multifacetada 1.0a1
>>> EEA Faceted Navigation 8.9 (na 8.8 deu o mesmo problema)
>>>
>>> --
>>> Leandro Koiti Sato
>>> shogunbr em gmail.com
>>>
>>>
>>
>> --
>> Comunidade Plone no Governo
>> Site: http://www.softwarelivre.gov.br/plone
>> Wiki: http://colab.interlegis.leg.br/wiki/PloneGovBr
>> Histórico:
>> http://colab.interlegis.leg.br/search/?type=thread&order=latest&list=plonegov-br
>> Lista: https://listas.interlegis.gov.br/mailman/listinfo/plonegov-br
>>
>
>
> --
> Comunidade Plone no Governo
> Site: http://www.softwarelivre.gov.br/plone
> Wiki: http://colab.interlegis.leg.br/wiki/PloneGovBr
> Histórico:
> http://colab.interlegis.leg.br/search/?type=thread&order=latest&list=plonegov-br
> Lista: https://listas.interlegis.gov.br/mailman/listinfo/plonegov-br
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.interlegis.gov.br/pipermail/plonegov-br/attachments/20160428/e70599c1/attachment.html>


Mais detalhes sobre a lista de discussão PloneGov-BR