.. highlightlang:: none

grn_expr
========

名前
----

grn_expr - 検索条件やデータベースへの操作を表現するデータ構造(読み方:"ぐるんしき")

説明
----

grn_exprは、検索条件やデータベースへの操作を表現するために使用されるデータ構造の形式です。

データベースの中から特定の条件を満たすレコードを取り出すために、様々な条件をand,or,notなどの演算子で結合して自由に表現することができます。grn_exprは、一連のAPI関数を呼ぶことによって組み立てることができます。特定の文字列形式には依存していません。組み込みコマンドselectのqueryパラメータでは、検索エンジンのユーザがフォームで入力する文字列を直接受け取ることを想定して、文字列からgrn_exprを生成しています。また、多くの組み込みコマンドで共通に使用するために、ECMAScript形式の文字列からgrn_exprを生成するAPI関数grn_expr_parse()を用意しています。grn_expr_parseでパースできる文字列を特にscript形式のgrn_exprと呼びます。

grn_exprを使うことによって非常に柔軟に検索条件を記述することができます。類似文書検索や近傍検索のような高度な検索もすべてgrn_exprによって記述できます。また、全文検索クエリにおいて、特定の文字列を含むレコードのスコアを細かく制御したり、検索結果数の多寡に応じてより検索漏れの少ないアルゴリズムで再検索するような機能も、grn_exprとgrn_table_select()API関数を組み合わせることによって自由に定義できます。

script形式のgrn_expr
--------------------

ECMAScript風の構文で検索条件やレコードへの操作を記述します。

式中のIDENTIFIER(識別子)は、以下のいずれかを指します。

:引数名:
  grn_exprが受け取る引数の名前

:カラム名:
  操作対象としているレコードのカラム名

:型名・関数名・テーブル名:
  データベースに定義された型・テーブル・関数の名前

例
--

script形式でcolumn1の値が'hoge'に等しいという条件

  column1 == "hoge"

.. rubric:: 脚注
