俺的回收站

架构分析 解释编译原理
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

tcdatabase(二)

Posted on 2010-05-07 16:28  Riceball LEE  阅读(808)  评论(3编辑  收藏  举报

前面一篇: tcdatabase-1

搜索操作:根据“字段”检索出符合条件的key

cmd: misc search/metasearch [addcond/cond\0{fieldName}\0{condOperator}\0{Value}...[next] addcond/cond...] [setorder/order\0{fieldName}\0{OrderType}] [setlimit/limit/setmax/max)\0{MaxCount}[\0{SkipCount}]] [columns/get\0{FieldName1}\0{FieldNameN}] [mstype\0{SearchType}] [out/remove] [count] [hint]

搜索操作是通过search/metasearch命令进行,并可以支持联合查询。

参数描述:
  • * addcond/cond: 添加条件,多个条件构成一个查询,同查询之间为与(并且)关系。
    •   * fieldName为条件的字段名
    •   * condOperator代表操作类型,
    •   * value为操作对象
  • * next: 联合查询的下一个查询的开始,接下来的addcond为下一个查询。
  • * mstype: 表示联合查询之间的关系,默认是合并(OR)关系,可以是合并(OR),交集(AND)或不同(DIFF)。不过一次联合查询只能有一种关系(mstype)。
  • * setorder/order: 为这次查询指定一个排序字段,得到的结果集合将按该字段的指定方式排序。
    •   * orderType为排序类型,值如下:
    •     * STRASC:表示按照文本型字段内的文本内容在字典中排列顺序的升序。
    •     * STRDESC:表示按照文本型字段内的文本内容在字典中排列顺序的降序。
    •     * NUMASC:表示按照数值大小的升序。
    •     * NUMDESC:表示按照数值大小的降序
  • * setlimit/limit/setmax/max: 限制检索结果数量,相当于SQL语句中的“limit skip, max”。
  • * columns/get: 设置后,将不仅仅返回符合查询的keys,而且将获取指定列的值。如果只指定了columns没有指定字段,则将返回所有列的值。
  • * out/remove: 将删除符合查询的结果记录集,同时将删除的keys返回。
  • * count: 返回符合查询的记录数。
  • * hint: 将打印执行查询的调试信息。

操作类型可以分为:字符型运算,数值型运算,token型运算,全文检索型运算。
数值型运算符:
  • * NUMEQ:表示等于操作对象的数值(=)。
  • * NUMGT:表示比操作对象的数值要大(>)。
  • * NUMGE:表大于或等于操作对象的数值(>=)。
  • * NUMLT:表示比操作对象的数值要小(<)。
  • * NUMLE:表示小于或等于操作对象的数值(<=)。
  • * NUMBT:表示其大小处于操作对象文字段中被逗号分开的两个数值的中间(between 100 and 200)。
  • * NUMOREQ:表示同操作对象文字段中被逗号分开的多个数值中的其中一个是相同的( IN (100,200,278))
文本型运算符:
  • * STREQ:表示与操作对象的文字内容完全相同(=)。
  • * STRINC:表示含有操作对象文字的内容(LIKE ‘%文字%’)。
  • * STRBW:表示以操作对象的文字行列开始(LIKE ‘文字%’)。
  • * STREW:表示到操作对象的文字行列结束(LIKE ‘%文字’) 。
  • * STRAND:表示包含操作对象的文字行列中右逗号分开部分的字 段的全部(name LIKE ‘%文字(一)%’ AND name LIKE ‘%文字(二)%’)。
  • * STROR:表示包含操作对象文字段中逗号分开部分的其中一部分 (name LIKE ‘%文字(一)%’ OR name LIKE ‘%文字(二)%’) 。
  • * STROREQ:表示与操作对象文字段中逗号分开部分的其中某部分完全相同( name = ‘文字(一)’ OR name =‘文字(二)’ )。

设置索引操作

misc setindex name type
可以对“字段”建立索引, 暂不支持支持全文检索
  • * name:待索引的字段名称;
  • * type为索引类型,值如下:
    •   * TDBITLEXICAL(0):创建文本型索引
    •   * TDBITDECIMAL(1):创建数值型索引
    •   * TDBITTOKEN(2):创建标记倒排索引 ,暂不支持
    •   * TDBITQGRAM(3):创建q-gram倒排索引 ,暂不支持
    •   * TDBITOPT(9998):优化索引
    •   * TDBITVOID(9999):删除索引
    •   * TDBITREINDEX(10000): 重建索引