Basic Text Search 字段

Basic Text Search 模块将对字段中的可搜索数据建立索引。

对未结构化文本建立索引时,将对缺省字段 contents 中的每个值建立索引。无需在 bts_contains() 搜索谓词中指定 contents 字段,因为将始终搜索该字段。

如果对多个列创建组合索引,那么缺省情况下索引列中的文本将合并成一个字符串,并在 contents 字段中建立索引。

您可以通过使用 query_default_field 索引参数来覆盖缺省字段。请将 query_default_field 索引参数设置为特定的列名以使用该列作为缺省字段。对于组合索引,请将 query_default_field 索引参数设置为 * 以对同名字段下索引中所包括的每个列中的文本建立索引。

通过使用 XML 索引参数对结构化文本建立索引时,将在单独的字段中对 XML 标记或路径的名称建立索引,并且您必须在 bts_contains() 搜索谓词中指定这些字段。如果指定 XML 标记的列表使用 xmltags 索引参数来建立索引,那么缺省字段将为字段列表内的第一个标记或路径。必须为 bts_contains() 搜索谓词中的所有其他字段指定字段名。如果启用 all_xmltags 索引参数,将不存在任何缺省字段。必须在 bts_contains() 搜索谓词中指定每个字段名。

要在字段内搜索文本,请指定字段名,后接冒号 (:) 和查询词语,格式为 fieldname:string。例如,如果在字段 fruit 中对 XML 数据建立了索引,那么可以使用以下搜索谓词:
bts_contains(column, ' fruit:Orange ')
bts_contains(column, ' fruit:"Orange Juice" ')
如果在包含路径 /fruit/citrus 的字段中对 XML 数据建立了索引,那么可以使用以下搜索谓词:
bts_contains(column, ' /fruit/citrus:"Orange Juice" ')
如果启用 include_namespaces 索引参数,那么必须使用反斜杠 (\) 对名称空间中的冒号 (:) 进行转义。例如,如果使用的是 fruit 名称空间:
bts_contains(column, ' fruit\:citrus:Orange ')

有关对 XML 数据建立索引和进行搜索的信息,请参阅 Basic Text Search XML 索引参数