- name
- 对每个定义的文本字段或文档属性指定名称。这些名称使您能够将搜索查询限制为特定文本字段或文档属性的内容。
可在名称中使用下列变量的其中一个。该变量将由源文档中的匹配元素生成的字符串来替换。
- Variable
- 值
- $(NAME)
- 与 XPath 路径相匹配的 XML 元素的实际限定名(QName)。
- $(LOCALNAME)
- 与 XPath 相匹配的 XML 元素的实际局部名(不带前缀)。
- $(PATH)
- 实际绝对路径,以与 XPath 相匹配的 XML 元素的斜杠和标记的序列组成。
- type
- 文档属性的类型必须是“NUMBER”。该参数不适用于字段定义。
- locator
- XPath 语言中的表达式,它们选择要用作搜索字段的源文档的各个部分。
当编写“XML 文档模型”文件时,locator 内的限定名(称为 QNames)必须与
XML 文档中的某些标记完全相同,否则,将不能识别任何字段,并且对字段的查询将不会返回结果。
下面是一些定位器的示例。有关进一步的信息,请参阅定位器(XPath)表达式的语义中的语法。
- purchaseOrder | salesOrder
- 所有 purchaseOrder 元素和 salesOrder 元素
- shipAddress
- 所有 shipAddress 元素
- *
- 所有元素(它是 child::* 的缩写 - 有关进一步的信息,请参阅语法)
- name/item
- 具有 name 父代的所有 item 元素
- purchaseOrder//item
- 具有 purchaseOrder 祖先的所有 item 元素
- /
- 根节点
- comment()
- 所有注释节点
- processing-instruction()
- 所有处理指令
- attribute::*(或者 @*)
- 所有属性节点
文字为括在单引号或双引号内的字符串。有关终端标记的精确定义,请参阅 XML 建议。
XPath 定位器与“XML 样式表语言变换”(XSLT)模式相似。它们正是由不包含任何谓词或函数“id”和“key”或节点测试“text()”和“node()”的
XSLT 模式的子集组成。
- ignore
- YES 或 NO。使用该参数来建立定位器的异常。
有时您可能想要指定常规定位器(例如 *)以与想要对其建立索引的节点相匹配。但是您还可指定不应对与较特定定位器相匹配的某些节点建立索引。
为此,为在建立索引期间要忽略的节点的较特定定位器加上字段定义。于是就对此定位器指定了比常规定位器更高的优先级,并指定
ignore="yes"。这将指示索引程序一定不要为匹配节点生成字段信息。
注意,当这种被忽略节点嵌入在字段生成节点中时,将对被忽略节点的内容建立索引,原因是它也属于字段生成节点的内容。
- priority
- -1 和 +1 之间的实数,它指定要给予由特定定位器找到的定义的优先级。
如果不指定优先级,将使用缺省优先级:
- 将由 | 分隔的多个备用项视作一组定义,每个备用项一个定义。
- 与单个名称相匹配的定位器;即,下列任一格式的定位器具有缺省优先级 0:
- ChildOrAttributeAxisSpecifier QName
- ChildOrAttributeAxisSpecifier processing-instruction(Literal))
- 格式为 ChildOrAttributeAxisSpecifier NCName:* 的定位器具有缺省优先级 -0.25。
- 格式为 ChildOrAttributeAxisSpecifier NodeTest 的其它定位器具有缺省优先级 -0.5。
- 任何其它定位器具有缺省优先级 0.5。
注意定位器越具体,缺省优先级越高。例如,非特定定位器 * 给予找到的定义低优先级,而名称较特定的定位器给予较高的优先级。
另外,注意当一个节点与多个定位器相匹配时,您可以通过对它们指定优先级来确定选择哪个定义。将选择具有最高优先级的定义。如果两个定义具有相同的优先级,将选择最新的定义。
此冲突解决与在“XML 样式表语言变换”(XSLT)中使用的完全相同。
- exclude
- YES 或 NO。一个参数,它确定是否应排除字段定义中的文本并且不对其建立索引。此参数不适用于属性定义。
在该示例中,将排除字段定义“customerName”,但是将包括定义“addresses”。