lucene-queries.xml 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="learning.lucene.queries">
  5. <title>サポートされるクエリー</title>
  6. <para>
  7. <classname>Zend_Search_Lucene</classname> と Java Lucene は、
  8. 強力なクエリー言語をサポートします。それにより、個別の語句や
  9. 条件の範囲を検索できます。ワイルドカードとあいまい検索を使用したり、
  10. 論理演算子を用いてクエリーを結合するなどして。
  11. </para>
  12. <para>
  13. クエリー言語についての詳細は、<link linkend="zend.search.lucene.query-language">
  14. Zend_Search_Lucene コンポーネント・ドキュメント</link>をご覧ください。
  15. </para>
  16. <para>
  17. 下記は、いくつかの一般的なクエリーの種類と方式の例です。
  18. </para>
  19. <example id="learning.lucene.queries.keyword">
  20. <title>単一の単語に対する問い合わせ</title>
  21. <programlisting language="text"><![CDATA[
  22. hello
  23. ]]></programlisting>
  24. <para>
  25. 文書項目全体を通して単語 "hello" を検索します。
  26. </para>
  27. </example>
  28. <note>
  29. <title>異なる検索項目</title>
  30. <para>
  31. 重要事項。Java Lucene は、デフォルトでは "contents" 項目だけを探していきます。
  32. しかし、<classname>Zend_Search_Lucene</classname> は、<emphasis>全</emphasis>項目を探していきます。
  33. この動作は、<methodname>Zend_Search_Lucene::setDefaultSearchField($fieldName)</methodname>
  34. メソッドを使って変更できます。
  35. </para>
  36. </note>
  37. <example id="learning.lucene.queries.multiple-words">
  38. <title>複数の単語に対する問い合わせ</title>
  39. <programlisting language="text"><![CDATA[
  40. hello dolly
  41. ]]></programlisting>
  42. <para>
  43. 2つの単語を検索します。両方の単語は任意です。
  44. 結果の中に少なくとも一つ存在しなければいけません。
  45. </para>
  46. </example>
  47. <example id="learning.lucene.queries.required-words">
  48. <title>クエリーで必須の単語</title>
  49. <programlisting language="text"><![CDATA[
  50. +hello dolly
  51. ]]></programlisting>
  52. <para>
  53. 2つの単語を検索します。"hello" は必須で、"dolly" は任意です。
  54. </para>
  55. </example>
  56. <example id="learning.lucene.queries.prohibited-words">
  57. <title>問い合わせられた文書で単語を禁止</title>
  58. <programlisting language="text"><![CDATA[
  59. +hello -dolly
  60. ]]></programlisting>
  61. <para>
  62. 2つの単語を検索します。"hello" は必須で、'dolly' は禁止です。
  63. 言い換えると、もし文書が "hello" にマッチし、単語
  64. "dolly" を含むと、それは一致セットに返されません。
  65. </para>
  66. </example>
  67. <example id="learning.lucene.queries.phrases">
  68. <title>句に対する問い合わせ</title>
  69. <programlisting language="text"><![CDATA[
  70. "hello dolly"
  71. ]]></programlisting>
  72. <para>
  73. 句 "hello dolly" を検索します。
  74. まさにその文字列が存在する文書のみマッチします。
  75. </para>
  76. </example>
  77. <example id="learning.lucene.queries.fields">
  78. <title>特定の項目に対する問い合わせ</title>
  79. <programlisting language="text"><![CDATA[
  80. title:"The Right Way" AND text:go
  81. ]]></programlisting>
  82. <para>
  83. <property>title</property> 項目内の句 "The Right Way" および
  84. <property>text</property> 項目内の単語 "go" を検索します。
  85. </para>
  86. </example>
  87. <example id="learning.lucene.queries.fields-and-document">
  88. <title>特定の項目ならびに文書全体に対する問合せ</title>
  89. <programlisting language="text"><![CDATA[
  90. title:"The Right Way" AND go
  91. ]]></programlisting>
  92. <para>
  93. <property>title</property> 項目内の句 "The Right Way" および
  94. 文書の全項目に現れる単語 "go" を検索します。
  95. </para>
  96. </example>
  97. <example id="learning.lucene.queries.fields-and-document-alt">
  98. <title>特定の項目ならびに文書全体に対する問合せ(別の例)</title>
  99. <programlisting language="text"><![CDATA[
  100. title:Do it right
  101. ]]></programlisting>
  102. <para>
  103. <property>title</property> 項目内の単語 "Do" および
  104. 全項目の単語 "it" および "right" を探していきます。
  105. いずれか一つマッチすると、文書がマッチすることになります。
  106. </para>
  107. </example>
  108. <example id="learning.lucene.queries.wildcard-question">
  109. <title>ワイルドカード "?" を用いた問い合わせ</title>
  110. <programlisting language="text"><![CDATA[
  111. te?t
  112. ]]></programlisting>
  113. <para>
  114. パターン "te?t" にマッチする単語を検索します。
  115. そのパターンで、"?" は単一文字の全てです。
  116. </para>
  117. </example>
  118. <example id="learning.lucene.queries.wildcard-asterisk">
  119. <title>ワイルドカード "*" を用いた問い合わせ</title>
  120. <programlisting language="text"><![CDATA[
  121. test*
  122. ]]></programlisting>
  123. <para>
  124. パターン "test*" にマッチする単語を検索します。
  125. そのパターンで、"*" はゼロ個以上の文字が連続したもの全てです。
  126. </para>
  127. </example>
  128. <example id="learning.lucene.queries.range-inclusive">
  129. <title>条件を含む範囲に対する問い合わせ</title>
  130. <programlisting language="text"><![CDATA[
  131. mod_date:[20020101 TO 20030101]
  132. ]]></programlisting>
  133. <para>
  134. 条件の範囲を検索します (含みます)。
  135. </para>
  136. </example>
  137. <example id="learning.lucene.queries.range-exclusive">
  138. <title>条件を含まない範囲に対する問い合わせ</title>
  139. <programlisting language="text"><![CDATA[
  140. title:{Aida to Carmen}
  141. ]]></programlisting>
  142. <para>
  143. 条件の範囲を検索します (含みません)。
  144. </para>
  145. </example>
  146. <example id="learning.lucene.queries.fuzzy">
  147. <title>あいまい検索</title>
  148. <programlisting language="text"><![CDATA[
  149. roam~
  150. ]]></programlisting>
  151. <para>
  152. 単語 "roam" をあいまい検索します。
  153. </para>
  154. </example>
  155. <example id="learning.lucene.queries.boolean">
  156. <title>ブーリアン検索</title>
  157. <programlisting language="text"><![CDATA[
  158. (framework OR library) AND php
  159. ]]></programlisting>
  160. <para>
  161. ブーリアン・クエリー
  162. </para>
  163. </example>
  164. <para>
  165. サポートされたクエリーは全て、<classname>Zend_Search_Lucene</classname>
  166. の<link linkend="zend.search.lucene.query-api">クエリ構成 API</link>
  167. で構成できます。
  168. さらに、クエリー解析とクエリー構成を組み合わせるかもしれません。
  169. </para>
  170. <example id="learning.lucene.queries.combining">
  171. <title>解析されて構成されたクエリーを組み合わせ</title>
  172. <programlisting language="php"><![CDATA[
  173. $userQuery = Zend_Search_Lucene_Search_QueryParser::parse($queryStr);
  174. $query = new Zend_Search_Lucene_Search_Query_Boolean();
  175. $query->addSubquery($userQuery, true /* required */);
  176. $query->addSubquery($constructedQuery, true /* required */);
  177. ]]></programlisting>
  178. </example>
  179. </sect1>