# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English page

### ナビゲーション

- 索引
- 次へ |
- 前へ |
- Groonga v4.0.2-145-gc632eedドキュメント »
- 8. リファレンスマニュアル »
- 8.15. API »

# 8.15.8. grn_expr

grn_expr is an `grn_obj` that represents an expression. Here is a list of what expression can do:

> - Expression can apply some operations to a record by `grn_expr_exec()`.
> - Expression can represents search condition. `grn_table_select()` can select records that match against the search condition represented by expression.

There are two string representations of expression:

> - クエリー構文
> - スクリプト構文

`grn_expr_parse()` parses string represented expression and appends the parsed expression to another expression.

## 8.15.8.1. 実行例:

TODO...

## 8.15.8.2. リファレンス

GRN_API grn_obj *`grn_expr_create`(grn_ctx *ctx, const char *name, unsigned int name_size)

GRN_API grn_rc `grn_expr_close`(grn_ctx *ctx, grn_obj *expr)

GRN_API grn_obj *`grn_expr_add_var`(grn_ctx *ctx, grn_obj *expr, const char *name, unsigned int name_size)

GRN_API grn_obj *`grn_expr_get_var_by_offset`(grn_ctx *ctx, grn_obj *expr, unsigned int offset)

`GRN_API grn_obj *grn_expr_append_obj(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, int nargs);`

GRN_API grn_obj *`grn_expr_append_const`(grn_ctx *ctx, grn_obj *expr, grn_obj *obj, grn_operator op, int nargs)

GRN_API grn_obj *`grn_expr_append_const_str`(grn_ctx *ctx, grn_obj *expr, const char *str, unsigned int str_size, grn_operator op, int nargs)

GRN_API grn_obj *`grn_expr_append_const_int`(grn_ctx *ctx, grn_obj *expr, int i, grn_operator op, int nargs)

GRN_API grn_rc `grn_expr_append_op`(grn_ctx *ctx, grn_obj *expr, grn_operator op, int nargs)

grn_rc `grn_expr_syntax_escape`(grn_ctx *ctx, const char *string, int string_size, const char *target_characters, char escape_character, grn_obj *escaped_string)

  Escapes `target_characters` in `string` by `escape_character`.

  パラメタ: | ctx -- Its encoding must be the same encoding of `string`. It is used for allocating buffer for `escaped_string`. string -- String expression representation. string_size -- The byte size of `string`. `-1` means `string` is NULL terminated string. target_characters -- NULL terminated escape target characters. For example, `"+-><~*()\"\\:"` is `target_characters` for クエリー構文. escape_character -- The character to use escape a character in `target_characters`. For example, `\\` (backslash) is `escaped_character` for クエリー構文. escaped_string -- The output of escaped `string`. It should be text typed bulk.
  戻り値: | 成功時は `GRN_SUCCESS` 、エラー時は `GRN_SUCCESS` 以外。

grn_rc `grn_expr_syntax_escape_query`(grn_ctx *ctx, const char *query, int query_size, grn_obj *escaped_query)

  クエリー構文 にある特別な文字をエスケープします。

  パラメタ: | ctx -- Its encoding must be the same encoding of `query`. It is used for allocating buffer for `escaped_query`. query -- クエリー構文 にある文字列式の表現。 query_size -- The byte size of `query`. `-1` means `query` is NULL terminated string. escaped_query -- The output of escaped `query`. It should be text typed bulk.
  戻り値: | 成功時は `GRN_SUCCESS` 、エラー時は `GRN_SUCCESS` 以外。

GRN_API grn_rc `grn_expr_compile`(grn_ctx *ctx, grn_obj *expr)

GRN_API grn_obj *`grn_expr_exec`(grn_ctx *ctx, grn_obj *expr, int nargs)

GRN_API grn_obj *`grn_expr_alloc`(grn_ctx *ctx, grn_obj *expr, grn_id domain, grn_obj_flags flags)

### ナビゲーション

- 索引
- 次へ |
- 前へ |
- Groonga v4.0.2-145-gc632eedドキュメント »
- 8. リファレンスマニュアル »
- 8.15. API »