1.2.1 - en to ja translation catalogue (60 entries)

en: Execution example::
ja: 実行例::

en: match_columns parameter
ja: match_columnsパラメータ

en: Full-text search against multiple columns
ja: 複数のカラムに対する全文検索

en: Groonga supports full-text search against multiple columns. Let's consider blog site. Usually, blog site has a table which contains title column and content column. How do you search the blog entry which contains specified keywords in title or content?
ja: Groongaでは、複数のカラムを対象とした全文検索を行うことができます。例えば、ブログのテーブルで、タイトルと内容とがそれぞれ別のカラムに入ったものがあるとしましょう。「タイトルもしくは内容に特定の単語を含む」検索を行いたいとします。

en: In such a case, there are two ways to create indexes. One way is creating column index against each column. The other way is creating one column index against multiple columns. Either way, Groonga supports similar full-text search syntax.
ja: この場合、2つのインデックス作成方式があります。1つは、それぞれのカラムに1つずつインデックスを付与する方式です。もう1つは、複数のカラムに対して1つのインデックスを付与する方式です。Groongaでは、どちらの形式のインデックスが存在している場合でも、同一の記法で全文検索を行うことができます。

en: Creating column index against each column
ja: カラムごとにインデックスを付与する場合

en: Here is the example which create column index against each column.
ja: カラムごとにインデックスを作成する方法はこの通りです。

en: First, create ``Blog1`` table, add ``title`` column which stores title string, ``message`` column which stores content of blog entry.
ja: まず、 ``Blog1`` テーブルを作成し、 ``title`` カラムと ``message`` カラムを追加します。 ``title`` カラムにブログのタイトルを保存し、 ``message`` カラムにブログの本文を保存します。

en: Then create ``IndexBlog1`` table for column indexes, add ``index_title`` column for ``title`` column, ``index_message`` column for ``message`` column.
ja: インデックス用の ``IndexBlog1`` テーブルも作り、 ``title`` カラムのインデックス用に ``index_title`` カラム、 ``message`` カラムのインデックス用に ``index_message`` カラムと、それぞれ1カラムごとに1つずつ追加しています。

en: ``match_columns`` option of ``select`` command accepts multiple columns as search target. Specify query string to ``query`` option. Then you can do full-text search title and content of blog entries.
ja: ``match_columns`` オプションで、検索対象のカラムを複数指定することが出来ます。検索する文字列は ``query`` オプションで指定します。これを使うことで、タイトルと本文を全文検索することができます。

en: Let's try to search blog entries.
ja: 実際にブログエントリを検索してみましょう。

en: Creating one column index against multiple columns
ja: 複数のカラムにまたがったインデックスを付与する場合

en: Groonga also supports one column index against multiple columns.
ja: Groongaでは複数のカラムにまたがったインデックスもサポートしています。

en: The difference for previous example is only one column index exists. Thus, There is one common column index against title and message column.
ja: インデックスカラムが1つしかないというのが違いです。 ``title`` と ``message`` の2つのカラムに対するインデックスが共通になっています。

en: Even though same column index is used, Groonga supports to search against title column only, message column only and title or message column.
ja: 共通のインデックスを用いても、 ``title`` カラムのみでの検索、 ``message`` カラムのみでの検索、 ``title`` もしくは ``message`` カラムでの検索、全ての検索を行うことができます。

en: Let's search same query in previous section. You can get same search results.
ja: 実際に前と同じ例で検索してみましょう。結果は上の例と同じになります。

en: There may be a question that "which is the better solution for indexing." It depends on the case.
ja: "インデックスはどちらがよい方法なのか"と疑問に思うかもしれません。それは場合によります。

en: Indexes for each column - The update performance tends to be better than multiple colum index because there is enough buffer for updating. On the other hand, the efficiency of disk usage is not so good.
ja: カラムごとのインデックス - マルチカラムインデックスよりも更新性能が良い傾向があります。一方、ディスク使用効率はあまり良くありません。

en: Indexes for multiple column - It saves disk usage because it shares common buffer. On the other hand, the update performance is not so good.
ja: マルチカラムインデックス - バッファを共有するためディスク使用効率が良いです。一方、更新性能があまり良くありません。

en: Full text search with specific index name
ja: インデックス名を指定した全文検索

en: Groonga also supports full text search with specific index name.
ja: Groongaは、インデックス名を指定した全文検索もサポートしています。

en: In this section, you learn how to use specific index column efficiently.
ja: このセクションでは、インデックス名を指定した全文検索の方法を学びます。

en: Here is the concrete example about specific index name.
ja: インデックス名の指定について具体的な例を示します。

en: The table which stores entries has columns for title and body. And the terms table has index columns for title and body to entries table.
ja: ``title`` と ``body`` カラムを持つテーブルがあります。また、語彙表は ``title`` と ``body`` のカラムのインデックスを持っています。

en: There are three index columns in terms table.
ja: 語彙表には、3つのインデックスカラムがあります。

en: entries_title: index column for title
ja: entries_title: ``title`` のインデックスカラム

en: entries_body: index column for body
ja: entries_body: ``body`` のインデックスカラム

en: entries_whole: index column for title and body
ja: entries_whole: ``title`` と ``body`` のインデックスカラム

en: If you specify index column which is related to specific data column, related data column is searched with that index implicitly.
ja: 特定のデータカラムと結びついたインデックスカラムを指定した場合は、暗黙的にそのデータカラムだけを検索します。

en: For example, if you want to search title or body only, specify ``Terms.entries_title`` or ``Terms.entries_body`` index column.
ja: 例えば、 ``title`` または ``body`` だけを検索したい場合は、 ``Terms.entries_title`` または ``Terms.entries_body`` をインデックスカラムに指定します。

en: This example uses ``Terms.entries_title`` as index, then search "Groonga" against title data column.
ja: この例では、``Terms.entries_title`` をインデックスとして ``title`` カラムを対象に"Groonga"を検索します。

en: This example uses ``Terms.entries_body`` as index, then search "Groonga" against body data column.
ja: この例では、 ``Terms.entries_whole`` をインデックスとして、 ``body`` カラムを対象に"Groonga"を検索します。

en: If you specify multiple index column which is related to specific data columns, you can also specify data column name as suffix. It means that "Use specific index and search specific data column explicitly".
ja: 複数カラムにまたがるインデックスは、インデックスカラムの後にデータカラム名を指定することができます。これは、どのインデックスを使ってどのデータカラムを検索するかを明示しています。

en: For example, if you want to search title or body only with ``entries_whole`` index, specify ``Terms.entries_whole.title`` or ``Terms.entries_whole.body``. It uses ``Terms.entries_whole`` index and search ``title`` column or ``body`` column explicitly.
ja: 例えば、 ``entries_whole`` インデックスが付いた ``title`` または ``body`` を検索する場合、 ``Terms.entries_whole.title`` または ``Terms.entries_whole.body`` を指定します。 ``Terms.entries_whole`` をインデックスとして使い、 ``title`` カラムまたは、 ``body`` カラムを対象に検索します。

en: This example uses ``Terms.entries_whole`` as index, then search "Groonga" against title data column.
ja: この例では、 ``Terms.entries_whole`` をインデックスとして、 ``title`` カラムを対象に"Groonga"を検索します。

en: This example uses ``Terms.entries_whole`` as index, then search "Groonga" against body data column.
ja: この例では、 ``Terms.entries_whole`` をインデックスとして、 ``body`` カラムを対象に"Groonga"を検索します。

en: Nested index search among related table by column index
ja: カラムインデックスによる関連テーブルをまたぐ検索

en: If there are relationships among multiple table with column index, you can search multiple table by specifying reference column name.
ja: 複数のテーブルがカラムインデックスで関連付けられているなら、参照カラム名を指定して複数のテーブルにまたがって検索することができます。

en: Here is the concrete example.
ja: 具体的な例を示します。

en: There are tables which store blog articles, comments for articles. The table which stores articles has columns for article and comment. And the comment column refers Comments table. The table which stores comments has columns for comment and column index to article table.
ja: ブログ記事や記事のコメントを保存するテーブルがあります。記事を保存するテーブルには記事とコメントのためのカラムがあります。そしてそのコメントカラムはCommentsテーブルを参照しています。コメントを保存するテーブルにはコメントと記事テーブルに対するカラムインデックスが設定されています。

en: if you want to search the articles which contain specified keyword in comment, you need to execute fulltext search for table of comment, then search the records which contains fulltext search results.
ja: 特定のキーワードをコメントに含む記事を探すには、コメントテーブルを全文検索する必要があり、全文検索結果を含むレコードをさらに検索する必要があります。

en: But, you can search the records by specifying the reference column index at once.
ja: しかし、カラムインデックスを指定することで一度にレコードを検索することができます。

en: Here is the sample schema.
ja: サンプルのスキーマ定義はこちらです。

en: Here is the sample data.
ja: サンプルデータはこちらです。

en: You can write the query that search the records which contains specified keyword as a comment, then fetch the articles which refers to it.
ja: 特定のキーワードをコメントに含むレコードを検索するクエリを書くことができ、それによりレコードを参照する記事を取得します。

en: Query for searching the records described above::
ja: これまでに記述したレコードを検索するクエリ::

en: You need to concatenate comment column of Articles table and content column of Comments table with period( ``.`` ) as ``--match_columns`` arguments.
ja: ArticlesテーブルのcommentカラムとCommentsテーブルのcontentカラムをピリオド( ``.`` )で連結し ``--match_columns`` の引数とする必要があります。

en: At first, this query execute fulltext search from content of Comments table, then fetch the records of Articles table which refers to already searched records of Comments table. (Because of this, if you comment out the query which creates index column ``article`` of Comments table, you can't get intended search results.)
ja: 最初に、このクエリはCommentsテーブルのcontentを全文検索し、次にCommentsテーブルを検索した結果のレコードを参照するArticlesテーブルのレコードを取得します。(これにより、Commentsテーブルの ``article`` インデックスカラムを生成するクエリをコメントアウトすると、意図した検索結果が得られません。)

en: Now, you can search articles which contains specific keywords as a comment.
ja: これで、特定のキーワードをコメントとして含む記事を検索できます。

en: The feature of nested index search is not limited to the relationship between two table only.
ja: このネストしたインデックスの検索という特徴には関連するテーブルが2つだけに制限されません。

en: Here is the sample schema similar to previous one. The difference is added table which express 'Reply' and relationship is extended to three tables.
ja: 前のものと似たサンプルのスキーマ定義です。違いは'返信'を表現するテーブルの追加と関連するテーブルが3つに増えたことです。

en: The first query searches ``mroonga`` from ``Comments2`` table, the second one searches ``mroonga`` from ``Replies2`` and ``Comments2`` table by using reference column index.
ja: 最初のクエリは ``Comments2`` テーブルから ``mroonga`` を検索します。2つめのクエリは ``Replies2`` と ``Comments2`` テーブルからカラムインデックスによる参照を用いて ``mroonga`` を検索します。

en: As a result, the first query matches two article because of ``Comments2`` table has two records which contains ``mroonga`` as keyword.
ja: 結果として、最初のクエリは ``Comments2`` テーブルに ``mroonga`` をキーワードとして含むレコードが2つあるので、該当する記事2つにマッチします。

en: On the other hand, the second one matches one article only because of ``Replies2`` table has only one record which contains ``mroonga`` as keyword, and there is one record which contains same keyword and refers to the record in ``Comments2`` table.
ja: 一方、2つめのクエリは ``Replies2`` テーブルに ``mroonga`` というキーワードにマッチするレコードが1つしかなく、 ``Comments2`` テーブルでそのキーワードを含むレコードを参照するコメントが1つなので、該当する記事は1つだけとなります。

en: Indexes with Weight
ja: インデックスの重み

en: If index columns are created for data columns, you can search by indexes with weight. For example, let's try to search blog entries by indexes with weight which contains ``Groonga`` as important keyword in ``Blog1`` table. Generally speaking, an important keyword tend to be included in blog title, so if ``title`` column contains ``Groonga``, its score ( ``_score`` ) must be raised in contrast to ``message`` column. The indexes with weight is used for such a purpose.
ja: もし、インデックスカラムがデータカラムに対して作成されていたら、インデックスの重みを使って検索できます。例えば、 ``Groonga`` が重要なキーワードとしてブログエントリに含まれている ``Blog1`` テーブルをインデックスの重みを使って検索してみましょう。一般的に重要なキーワードはブログのタイトルに含まれます。そのため、 ``title`` カラムが ``Groonga`` を含んでいればそのスコア( ``_score`` )が ``message`` カラムにくらべて高くないといけません。インデックスの重みはそのような目的に使われます。

en: Here is the example which search blog entries with ``Groonga`` as important keyword in ``title`` or ``message`` columns.
ja: 次は、``tittle`` や ``message`` カラムに重要なキーワードとして ``Groonga`` が含まれているブログエントリを検索する例です。

en: The sample schema and data is same as :ref:`creating-column-index-against-each-column`.
ja: サンプルのスキーマとデータは :ref:`creating-column-index-against-each-column` と同じです。

en: In above query, ``'IndexBlog1.index_title * 10 || IndexBlog1.index_message'`` is specified for ``--match_columns``. It means that if ``title`` column (search ``title`` column using ``IndexBlog1.index_title`` index) matches to ``Groonga``, its weight is multiplied to 10 and if ``message`` column (search ``message`` column using ``IndexBlog1.index_message`` index) matches to ``Groonga``, its weight is 1 (default). If ``Groonga`` matches to ``title`` and ``message``, its weight is 11 (10 + 1) in this case.
ja: 上記の例では、 ``'IndexBlog1.index_title * 10 || IndexBlog1.index_message'`` が ``--match_columns`` に指定されています。これは ``title`` カラム( ``IndexBlog1.index_title`` インデックスを使って検索)が ``Groonga`` にマッチしたら、その重みは10倍されます。もし ``message`` カラム( ``IndexBlog1.index_message`` インデックスを使って検索)が ``Groonga`` にマッチしたら、その重みは1(既定値)になります。もし ``Groonga`` が ``title`` と ``message`` カラムの両方にマッチしたら、その重みはこの場合11(10 + 1)になります。

en: As a result, ``Groonga test`` blog entry is listed in first.
ja: 結果として、 ``Groonga test`` ブログエントリがリストの最初に表示されます。
