Zend_Search_Lucene-Charset.xml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <sect1 id="zend.search.lucene.charset">
  2. <title>Karakterset.</title>
  3. <sect2 id="zend.search.lucene.charset.description">
  4. <title>Support voor UTF-8 en single-byte karaktersets.</title>
  5. <para>
  6. Zend_Search_Lucene is ontworpen om met de UTF-8 karakterset te werken. Indexbestanden
  7. slaan unicode data op in Java's "modified UTF-8 encoding". Zend_Search_Lucene core
  8. biedt volledige support voor deze vorm op één uitzondering na.
  9. <footnote>
  10. <para>
  11. Zend_Search_Lucene biedt alleen support voor Basic
  12. Multilingual Plane (BMP) karakters (van 0x0000 tot 0xFFFF)
  13. en biedt geen support voor bijkomende karakters (karakters
  14. waarvan de codes groter zijn dan 0xFFFF)
  15. </para>
  16. <para>
  17. Java 2 stelt deze karakters voor als een paar van char (16-bit)
  18. waarden, het eerste paar van de hogere reeks (0xD800_0xDBFF), het
  19. tweede van de lagere reeks (0xDC00-0XDFFF). Daarna worden ze
  20. omgeschreven op 6 bytes zoals gewone UTF-8 karakters.
  21. De standaard UTF-8 voorstelling gebruikt vier bytes voor bijkomende
  22. karakters.
  23. </para>
  24. </footnote>
  25. </para>
  26. <para>
  27. Niettemin, tekst analysator, query parser tekst analysator en query parser
  28. gebruiken ctype_alpha() om tekst en queries van tokens te voorzien.
  29. ctype_alpha() biedt geen support voor UTF-8 en zal moeten worden vervangen
  30. in de nabije toekomst.
  31. </para>
  32. <para>
  33. We raden je sterk aan jouw data in ASCII om te schrijven
  34. <footnote>
  35. <para>
  36. Indien de data in non-ascci karakters of UTF-8 is geschreven.
  37. </para>
  38. </footnote>
  39. (zowel voor het opslaan als voor het queryen van de brondocumenten):
  40. </para>
  41. <programlisting role="php"><![CDATA[<?php
  42. $doc = new Zend_Search_Lucene_Document();
  43. ...
  44. $docText = iconv('ISO-8859-1', 'ASCII//TRANSLIT', $docText);
  45. $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $docText));
  46. ...
  47. $query = iconv('', 'ASCII//TRANSLIT', $query);
  48. $hits = $index->find($query);
  49. ?>]]></programlisting>
  50. </sect2>
  51. </sect1>
  52. <!--
  53. vim:se ts=4 sw=4 et:
  54. -->