|
|
@@ -1,6 +1,6 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- Reviewed: no -->
|
|
|
-<!-- EN-Revision: 20872 -->
|
|
|
+<!-- EN-Revision: 21819 -->
|
|
|
<sect1 id="zend.search.lucene.query-api">
|
|
|
<title>クエリ作成用の API</title>
|
|
|
|
|
|
@@ -190,20 +190,20 @@ $query->addTerm(new Zend_Search_Lucene_Index_Term('word3'), false);
|
|
|
|
|
|
$hits = $index->find($query);
|
|
|
]]></programlisting>
|
|
|
-
|
|
|
- <para>
|
|
|
- MultiTerm クエリのコンストラクタで、単語のリストを指定することもできます。
|
|
|
+
|
|
|
+ <para>
|
|
|
+ MultiTerm クエリのコンストラクタで、単語のリストを指定することもできます。
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
-$terms = array(new Zend_Search_Lucene_Index_Term('word1'),
|
|
|
- new Zend_Search_Lucene_Index_Term('word2', 'author'),
|
|
|
- new Zend_Search_Lucene_Index_Term('word3'));
|
|
|
-$signs = array(true, null, false);
|
|
|
-
|
|
|
-$query = new Zend_Search_Lucene_Search_Query_MultiTerm($terms, $signs);
|
|
|
-
|
|
|
+$terms = array(new Zend_Search_Lucene_Index_Term('word1'),
|
|
|
+ new Zend_Search_Lucene_Index_Term('word2', 'author'),
|
|
|
+ new Zend_Search_Lucene_Index_Term('word3'));
|
|
|
+$signs = array(true, null, false);
|
|
|
+
|
|
|
+$query = new Zend_Search_Lucene_Search_Query_MultiTerm($terms, $signs);
|
|
|
+
|
|
|
$hits = $index->find($query);
|
|
|
-]]></programlisting>
|
|
|
- </para>
|
|
|
+]]></programlisting>
|
|
|
+ </para>
|
|
|
|
|
|
<para>
|
|
|
<varname>$signs</varname> 配列に、単語の種別についての情報を含めます。
|
|
|
@@ -226,145 +226,145 @@ $hits = $index->find($query);
|
|
|
</itemizedlist>
|
|
|
</para>
|
|
|
</sect2>
|
|
|
-
|
|
|
- <sect2 id="zend.search.lucene.queries.boolean-query">
|
|
|
- <title>Boolean クエリ</title>
|
|
|
- <para>
|
|
|
- Boolean クエリを使用すると、他のクエリや boolean 演算子を用いたクエリを作成できます。
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- セット内の各サブクエリは、<emphasis>required (必須)</emphasis> か
|
|
|
- <emphasis>prohibited (禁止)</emphasis>、あるいは <emphasis>optional (オプション)</emphasis> として定義します。
|
|
|
-
|
|
|
- <itemizedlist>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>required</emphasis> は、このサブクエリにマッチしないドキュメントはクエリにマッチしません。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>prohibited</emphasis> は、このサブクエリにマッチするドキュメントはクエリにマッチしません。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>optional</emphasis> の場合、このサブクエリにマッチしなければマッチしないというわけではなく、このサブクエリにマッチしたものをを除外するというわけでもありません。
|
|
|
- しかし、クエリにマッチするには少なくともひとつのサブクエリにマッチする必要があります。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- 必須サブクエリを含むクエリにオプションのサブクエリを追加しても結果は変わりません。
|
|
|
- ただ、オプションのサブクエリを使用することで、マッチしたドキュメントのスコアが変わります。
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- boolean クエリには、両方の方式の検索メソッドが使用可能です。
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- 文字列によるクエリ
|
|
|
- </para>
|
|
|
+
|
|
|
+ <sect2 id="zend.search.lucene.queries.boolean-query">
|
|
|
+ <title>Boolean クエリ</title>
|
|
|
+ <para>
|
|
|
+ Boolean クエリを使用すると、他のクエリや boolean 演算子を用いたクエリを作成できます。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ セット内の各サブクエリは、<emphasis>required (必須)</emphasis> か
|
|
|
+ <emphasis>prohibited (禁止)</emphasis>、あるいは <emphasis>optional (オプション)</emphasis> として定義します。
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>required</emphasis> は、このサブクエリにマッチしないドキュメントはクエリにマッチしません。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>prohibited</emphasis> は、このサブクエリにマッチするドキュメントはクエリにマッチしません。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>optional</emphasis> の場合、このサブクエリにマッチしなければマッチしないというわけではなく、このサブクエリにマッチしたものをを除外するというわけでもありません。
|
|
|
+ しかし、クエリにマッチするには少なくともひとつのサブクエリにマッチする必要があります。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 必須サブクエリを含むクエリにオプションのサブクエリを追加しても結果は変わりません。
|
|
|
+ ただ、オプションのサブクエリを使用することで、マッチしたドキュメントのスコアが変わります。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ boolean クエリには、両方の方式の検索メソッドが使用可能です。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 文字列によるクエリ
|
|
|
+ </para>
|
|
|
<programlisting language="querystring"><![CDATA[
|
|
|
+(word1 word2 word3) (author:word4 author:word5) -(word6)
|
|
|
-]]></programlisting>
|
|
|
-
|
|
|
- <itemizedlist>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- 必須サブクエリには '+' を使用します。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- 禁止サブクエリには '-' を使用します。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- 検索するドキュメントフィールドを指定するには 'field:'
|
|
|
- 省略した場合はすべてのフィールドを検索します。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
-
|
|
|
- <para>あるいは</para>
|
|
|
-
|
|
|
- <para>
|
|
|
- <acronym>API</acronym> で作成するクエリ
|
|
|
- </para>
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ 必須サブクエリには '+' を使用します。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ 禁止サブクエリには '-' を使用します。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ 検索するドキュメントフィールドを指定するには 'field:'
|
|
|
+ 省略した場合はすべてのフィールドを検索します。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+
|
|
|
+ <para>あるいは</para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <acronym>API</acronym> で作成するクエリ
|
|
|
+ </para>
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
-$query = new Zend_Search_Lucene_Search_Query_Boolean();
|
|
|
-
|
|
|
-$subquery1 = new Zend_Search_Lucene_Search_Query_MultiTerm();
|
|
|
-$subquery1->addTerm(new Zend_Search_Lucene_Index_Term('word1'));
|
|
|
-$subquery1->addTerm(new Zend_Search_Lucene_Index_Term('word2'));
|
|
|
-$subquery1->addTerm(new Zend_Search_Lucene_Index_Term('word3'));
|
|
|
-
|
|
|
-$subquery2 = new Zend_Search_Lucene_Search_Query_MultiTerm();
|
|
|
-$subquery2->addTerm(new Zend_Search_Lucene_Index_Term('word4', 'author'));
|
|
|
-$subquery2->addTerm(new Zend_Search_Lucene_Index_Term('word5', 'author'));
|
|
|
-
|
|
|
-$term6 = new Zend_Search_Lucene_Index_Term('word6');
|
|
|
-$subquery3 = new Zend_Search_Lucene_Search_Query_Term($term6);
|
|
|
-
|
|
|
-$query->addSubquery($subquery1, true /* required */);
|
|
|
-$query->addSubquery($subquery2, null /* optional */);
|
|
|
-$query->addSubquery($subquery3, false /* prohibited */);
|
|
|
-
|
|
|
+$query = new Zend_Search_Lucene_Search_Query_Boolean();
|
|
|
+
|
|
|
+$subquery1 = new Zend_Search_Lucene_Search_Query_MultiTerm();
|
|
|
+$subquery1->addTerm(new Zend_Search_Lucene_Index_Term('word1'));
|
|
|
+$subquery1->addTerm(new Zend_Search_Lucene_Index_Term('word2'));
|
|
|
+$subquery1->addTerm(new Zend_Search_Lucene_Index_Term('word3'));
|
|
|
+
|
|
|
+$subquery2 = new Zend_Search_Lucene_Search_Query_MultiTerm();
|
|
|
+$subquery2->addTerm(new Zend_Search_Lucene_Index_Term('word4', 'author'));
|
|
|
+$subquery2->addTerm(new Zend_Search_Lucene_Index_Term('word5', 'author'));
|
|
|
+
|
|
|
+$term6 = new Zend_Search_Lucene_Index_Term('word6');
|
|
|
+$subquery3 = new Zend_Search_Lucene_Search_Query_Term($term6);
|
|
|
+
|
|
|
+$query->addSubquery($subquery1, true /* required */);
|
|
|
+$query->addSubquery($subquery2, null /* optional */);
|
|
|
+$query->addSubquery($subquery3, false /* prohibited */);
|
|
|
+
|
|
|
$hits = $index->find($query);
|
|
|
-]]></programlisting>
|
|
|
-
|
|
|
- <para>
|
|
|
- Boolean クエリのコンストラクタで、単語のリストを指定することもできます。
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Boolean クエリのコンストラクタで、単語のリストを指定することもできます。
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
-...
|
|
|
-$subqueries = array($subquery1, $subquery2, $subquery3);
|
|
|
-$signs = array(true, null, false);
|
|
|
-
|
|
|
-$query = new Zend_Search_Lucene_Search_Query_Boolean($subqueries, $signs);
|
|
|
-
|
|
|
+...
|
|
|
+$subqueries = array($subquery1, $subquery2, $subquery3);
|
|
|
+$signs = array(true, null, false);
|
|
|
+
|
|
|
+$query = new Zend_Search_Lucene_Search_Query_Boolean($subqueries, $signs);
|
|
|
+
|
|
|
$hits = $index->find($query);
|
|
|
-]]></programlisting>
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- <varname>$signs</varname> 配列に、サブクエリの種別についての情報を含めます。
|
|
|
- <itemizedlist>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- 必須のサブクエリには <constant>TRUE</constant> を使用します。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- 禁止するサブクエリには <constant>FALSE</constant> を使用します。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- 必須・禁止のどちらでもないサブクエリには <constant>NULL</constant> を使用します。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- boolean 演算子を使用する各クエリは、符号記法や <acronym>API</acronym> を用いて書き換えることができます。たとえば
|
|
|
+]]></programlisting>
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <varname>$signs</varname> 配列に、サブクエリの種別についての情報を含めます。
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ 必須のサブクエリには <constant>TRUE</constant> を使用します。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ 禁止するサブクエリには <constant>FALSE</constant> を使用します。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ 必須・禁止のどちらでもないサブクエリには <constant>NULL</constant> を使用します。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ boolean 演算子を使用する各クエリは、符号記法や <acronym>API</acronym> を用いて書き換えることができます。たとえば
|
|
|
<programlisting language="querystring"><![CDATA[
|
|
|
word1 AND (word2 AND word3 AND NOT word4) OR word5
|
|
|
-]]></programlisting>
|
|
|
- は次のクエリと同等です。
|
|
|
+]]></programlisting>
|
|
|
+ は次のクエリと同等です。
|
|
|
<programlisting language="querystring"><![CDATA[
|
|
|
(+(word1) +(+word2 +word3 -word4)) (word5)
|
|
|
-]]></programlisting>
|
|
|
- </para>
|
|
|
- </sect2>
|
|
|
-
|
|
|
+]]></programlisting>
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
<sect2 id="zend.search.lucene.queries.wildcard">
|
|
|
<title>ワイルドカードクエリ</title>
|
|
|
<para>
|
|
|
@@ -418,7 +418,7 @@ $hits = $index->find($query);
|
|
|
文字列によるクエリ
|
|
|
<programlisting language="querystring"><![CDATA[
|
|
|
field1:test~
|
|
|
-]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
このクエリは、'test' 'text' 'best' といった単語を含むドキュメントにマッチします。
|
|
|
</para>
|
|
|
|
|
|
@@ -441,7 +441,7 @@ $hits = $index->find($query);
|
|
|
文字列によるクエリ
|
|
|
<programlisting language="querystring"><![CDATA[
|
|
|
field1:test~0.4
|
|
|
-]]></programlisting>
|
|
|
+]]></programlisting>
|
|
|
</para>
|
|
|
|
|
|
<para>or</para>
|