Zend_Search_Lucene-Charset.xml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <sect1 id="zend.search.lucene.charset">
  2. <title>Conjuntos de Caracteres</title>
  3. <sect2 id="zend.search.lucene.charset.description">
  4. <title>Suporte aos conjuntos de caracteres UTF-8 e byte-simples.</title>
  5. <para>Zend_Search_Lucene foi projetado para trabalhar com conjuntos de
  6. caracteres UTF-8. Arquivos de índice armazenam dados unicode no formato de
  7. codificação "UTF-8 modificado" usado pelo Java. O núcleo do
  8. Zend_Search_Lucene suporta-os plenamente, com uma exceção: <footnote>
  9. <para>Zend_Search_Lucene suporta somente os caracteres do Plano
  10. Multilingual Básico (BMP) (de 0x0000 a 0xFFFF), não suportando os
  11. caracteres suplementares (caracteres acima de 0xFFFF)</para>
  12. <para>O Java 2 representa estes caracteres como um par de valores do
  13. tipo char (16 bits), o primeiro vem da faixa superior (0xD800-0xDBFF),
  14. o segundo, da faixa inferior (0xDC00-0xDFFF). Logo eles são
  15. codificados como caracteres usuais UTF-8 em seis bytes. A
  16. representação padrão UTF-8 utiliza quatro bytes para caracteres
  17. suplementares.</para>
  18. </footnote></para>
  19. <para>Em todo caso, tanto os analizadores de texto, quanto os
  20. interpretadores e processadores de consultas, utilizam a função
  21. ctype_alpha() para tokenizar os textos e as consultas. A função
  22. ctype_alpha() não suporta UTF-8 e sua substituição deve ser considerada em
  23. um futuro próximo.</para>
  24. <para>Por enquanto, recomendamos a conversão dos dados para a
  25. representação ASCII. <footnote>
  26. <para>Se os dados estiverem em formato UTF-8 ou, obrigatoriamente,
  27. contiverem caracteres inexistentes em ASCII.</para>
  28. </footnote> (isso vale tanto para consultas, quanto para armazenagem de
  29. documentos fonte):</para>
  30. <programlisting role="php">&lt;?php
  31. $doc = new Zend_Search_Lucene_Document();
  32. ...
  33. $docText = iconv('ISO-8859-1', 'ASCII//TRANSLIT', $docText);
  34. $doc-&gt;addField(Zend_Search_Lucene_Field::UnStored('contents', $docText));
  35. ...
  36. $query = iconv('', 'ASCII//TRANSLIT', $query);
  37. $hits = $index-&gt;find($query);
  38. ?&gt;</programlisting>
  39. </sect2>
  40. </sect1>
  41. <!--
  42. vim:se ts=4 sw=4 et:
  43. -->