Kouhei Sutou
null+****@clear*****
Thu Oct 4 10:25:39 JST 2012
Kouhei Sutou 2011-06-18 21:10:04 +0900 (Sat, 18 Jun 2011) New Revision: 1106d49189cbf2019c80737a907f1a7bc46d0d30 https://github.com/mroonga/mroonga/commit/1106d49189cbf2019c80737a907f1a7bc46d0d30 Log: [wrapper][fulltext] support boolean mode. Modified files: ha_mroonga.cc Modified: ha_mroonga.cc (+14 -5) =================================================================== --- ha_mroonga.cc 2011-06-18 21:02:54 +0900 (dd4f5dd) +++ ha_mroonga.cc 2011-06-18 21:10:04 +0900 (fe1c94b) @@ -3838,12 +3838,21 @@ FT_INFO *ha_mroonga::wrapper_ft_init_ext(uint flags, uint key_nr, String *key) info->primary_key_length = table->key_info[table_share->primary_key].key_length; - // TODO: boolean mode support. grn_obj *index_column = grn_index_columns[key_nr]; - grn_obj query; - GRN_TEXT_INIT(&query, GRN_OBJ_DO_SHALLOW_COPY); - GRN_TEXT_SET_REF(&query, key->ptr(), key->length()); - grn_obj_search(info->ctx, index_column, &query, info->result, GRN_OP_OR, NULL); + if (flags & FT_BOOL) { + grn_query *query = grn_query_open(info->ctx, key->ptr(), key->length(), + GRN_OP_OR, MRN_MAX_EXPRS); + grn_obj_search(info->ctx, index_column, (grn_obj *)query, info->result, + GRN_OP_OR, NULL); + grn_query_close(info->ctx, query); + } else { + grn_obj query; + GRN_TEXT_INIT(&query, GRN_OBJ_DO_SHALLOW_COPY); + GRN_TEXT_SET_REF(&query, key->ptr(), key->length()); + grn_obj_search(info->ctx, index_column, &query, info->result, + GRN_OP_OR, NULL); + grn_obj_unlink(ctx, &query); + } DBUG_RETURN((FT_INFO *)info); } -------------- next part -------------- HTML����������������������������...Download