[Groonga-commit] groonga/groonga at 27ca05a [master] grn_ts: add a stub for --scorer

Back to archive index

susumu.yata null+****@clear*****
Thu Nov 12 22:15:04 JST 2015


susumu.yata	2015-11-12 22:15:04 +0900 (Thu, 12 Nov 2015)

  New Revision: 27ca05aae26d6e3896f9cb76baf72b6d67e9ed22
  https://github.com/groonga/groonga/commit/27ca05aae26d6e3896f9cb76baf72b6d67e9ed22

  Message:
    grn_ts: add a stub for --scorer
    
    GitHub: #428

  Modified files:
    lib/grn_ts.h
    lib/proc.c
    lib/ts.c

  Modified: lib/grn_ts.h (+3 -3)
===================================================================
--- lib/grn_ts.h    2015-11-12 22:23:26 +0900 (06ca2e5)
+++ lib/grn_ts.h    2015-11-12 22:15:04 +0900 (7413c72)
@@ -38,9 +38,9 @@ extern "C" {
  * `ctx`.
  */
 grn_rc grn_ts_select(grn_ctx *ctx, grn_obj *table,
-                     const char *filter_ptr, size_t filter_size,
-                     const char *output_columns_ptr,
-                     size_t output_columns_size,
+                     const char *filter_ptr, size_t filter_len,
+                     const char *scorer_ptr, size_t scorer_len,
+                     const char *output_columns_ptr, size_t output_columns_len,
                      size_t offset, size_t limit);
 
 #ifdef __cplusplus

  Modified: lib/proc.c (+1 -0)
===================================================================
--- lib/proc.c    2015-11-12 22:23:26 +0900 (ae9baec)
+++ lib/proc.c    2015-11-12 22:15:04 +0900 (8f2a791)
@@ -1014,6 +1014,7 @@ grn_select(grn_ctx *ctx, const char *table, unsigned int table_len,
     if (filter_len && (filter[0] == '?') &&
         (ctx->impl->output_type == GRN_CONTENT_JSON)) {
       ctx->rc = grn_ts_select(ctx, table_, filter + 1, filter_len - 1,
+                              scorer, scorer_len,
                               output_columns, output_columns_len,
                               offset, limit);
       if (!ctx->rc && cacheable && cache_key_size <= GRN_CACHE_MAX_KEY_SIZE &&

  Modified: lib/ts.c (+25 -12)
===================================================================
--- lib/ts.c    2015-11-12 22:23:26 +0900 (2fab403)
+++ lib/ts.c    2015-11-12 22:15:04 +0900 (9ebfce3)
@@ -616,10 +616,6 @@ grn_ts_writer_output(grn_ctx *ctx, grn_ts_writer *writer,
   return GRN_SUCCESS;
 }
 
-/*-------------------------------------------------------------
- * API.
- */
-
 /* grn_ts_select_filter() applies a filter to all the records of a table. */
 static grn_rc
 grn_ts_select_filter(grn_ctx *ctx, grn_obj *table, grn_ts_str str,
@@ -722,6 +718,14 @@ grn_ts_select_filter(grn_ctx *ctx, grn_obj *table, grn_ts_str str,
   return GRN_SUCCESS;
 }
 
+/* grn_ts_select_scorer() adjust scores. */
+static grn_rc
+grn_ts_select_scorer(grn_ctx *ctx, grn_obj *table, grn_ts_str str,
+                     grn_ts_record *records, size_t n_records) {
+  // TODO
+  return GRN_SUCCESS;
+}
+
 /* grn_ts_select_output() outputs the results. */
 static grn_rc
 grn_ts_select_output(grn_ctx *ctx, grn_obj *table, grn_ts_str str,
@@ -736,26 +740,35 @@ grn_ts_select_output(grn_ctx *ctx, grn_obj *table, grn_ts_str str,
   return rc;
 }
 
+/*-------------------------------------------------------------
+ * API.
+ */
+
 grn_rc
 grn_ts_select(grn_ctx *ctx, grn_obj *table,
-              const char *filter_ptr, size_t filter_size,
-              const char *output_columns_ptr, size_t output_columns_size,
+              const char *filter_ptr, size_t filter_len,
+              const char *scorer_ptr, size_t scorer_len,
+              const char *output_columns_ptr, size_t output_columns_len,
               size_t offset, size_t limit) {
   grn_rc rc;
-  grn_ts_str filter = { filter_ptr, filter_size };
-  grn_ts_str output_columns = { output_columns_ptr, output_columns_size };
+  grn_ts_str filter = { filter_ptr, filter_len };
+  grn_ts_str scorer = { scorer_ptr, scorer_len };
+  grn_ts_str output_columns = { output_columns_ptr, output_columns_len };
   grn_ts_record *records = NULL;
   size_t n_records, n_hits;
   if (!ctx || !table || !grn_ts_obj_is_table(ctx, table) ||
-      (!filter_ptr && filter_size) ||
-      (!output_columns_ptr && output_columns_size)) {
+      (!filter_ptr && filter_len) || (!scorer_ptr && scorer_len) ||
+      (!output_columns_ptr && output_columns_len)) {
     return GRN_INVALID_ARGUMENT;
   }
   rc = grn_ts_select_filter(ctx, table, filter, offset, limit,
                             &records, &n_records, &n_hits);
   if (rc == GRN_SUCCESS) {
-    rc = grn_ts_select_output(ctx, table, output_columns,
-                              records, n_records, n_hits);
+    rc = grn_ts_select_scorer(ctx, table, scorer, records, n_records);
+    if (rc == GRN_SUCCESS) {
+      rc = grn_ts_select_output(ctx, table, output_columns,
+                                records, n_records, n_hits);
+    }
   }
   if (records) {
     GRN_FREE(records);
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index