示例:对特定 XML 标记建立索引

可以使用 xmltags 参数对特定字段建立索引,这样就可以按 XML 标记名称限制搜索。

假定存在下表:
EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('t');

	CREATE TABLE boats(docid integer, xml_data lvarchar(4096)); 
	INSERT INTO boats values(1, '
		<boat> 
			<skipper>Captain Jack</skipper> 
			<boatname>Black Pearl</boatname> 
		</boat> ');
	INSERT INTO boats values(2, '
		<boat> 
			<skipper>Captain Black</skipper> 
			<boatname>The Queen Anne's Revenge</boatname> 
			</boat> ');
要为 skipperboatname 标记创建 bts 索引:
CREATE INDEX boats_bts ON boats(xml_data bts_lvarchar_ops) 
USING bts(xmltags="(skipper,boatname)") IN bts_sbspace;

该索引将包含以下字段:

对于 docid = 1 的行,字段为:
skipper:Captain Jack
boatname:Black Pearl
对于 docid = 2 的行,字段为:
skipper:Captain Black
boatname:The Queen Anne's Revenge
要搜索姓氏为“Black”的 skipper(船长),那么 SELECT 语句为:
SELECT xml_data FROM boats WHERE bts_contains(xml_data, 'skipper:black');

搜索将返回 docid 2,因为该行的 skipper 字段包含词语 "black"。对于 docid = 1,boatname 字段也包含词语 "black",但是不会返回该字段,因为搜索仅针对 skipper 字段。