IBM Books
(C) IBM Corp. 2000, 2003.

Net Search Extender

管理和用户指南

搜索自变量

搜索自变量语法

>>-+----------------------+--+-------------------------+-------->
   '-RESULT LIMIT--number-'  '-EXPANSION LIMIT--number-'
 
>--+------------------------------------------+----------------->
   '-STOP SEARCH AFTER--number--+-DOCUMENT--+-'
                                '-DOCUMENTS-'
 
>--+-| boolean-search-expression |-+---------------------------><
   '-| freetext-argument |---------'
 
Boolean-search-expression:
 
|--+-| search-term |-------------------------------------------------+--|
   '-| boolean-search-expression |--| operator-or |--| search-term |-'
 
search-term:
 
|--+-| search-factor |-----------------------------------------------+--|
   +-| search-term |--| operator-and |--| search-factor |------------+
   +-| search-term |--| operator-accum |--| search-factor |----------+
   '-| search-term |--| operator-minus |--| positive-search-factor |-'
 
Search-factor:
 
|--+-----+--| positive-search-factor |--------------------------|
   '-NOT-'
 
Positive-search-factor:
 
|--+-+------------------------------------------------------------+--| search-primary |-+--|
   | |                  .-,----------------------------------.    |                     |
   | |                  V                                    |    |                     |
   | '-+-SECTION--+--(----"section-name"--+----------------+-+--)-'                     |
   |   '-SECTIONS-'                       '-WEIGHT--number-'                            |
   '-attribute-factor-------------------------------------------------------------------'
 
Search-primary:
 
|--+-| text-literal |-------------------+-----------------------|
   +-| context-condition |--------------+
   +-| thesaurus-invocation |-----------+
   +-(--| boolean-seach-expression |--)-+
   '-(--| text-literal-list |--)--------'
 
Operator-and:
 
|--&------------------------------------------------------------|
 
Operator-or:
 
|--|------------------------------------------------------------|
 
Operator-accum:
 
|--ACCUM--------------------------------------------------------|
 
Operator-minus:
 
|--MINUS--------------------------------------------------------|
 
Context-condition:
 
|----| context-argument |--| IN-SAME |--| context-unit |--| AS |--| context-argument |---->
 
>--+-------------------------------+----------------------------|
   | .---------------------------. |
   | V                           | |
   '---AND--| Context-argument |-+-'
 
Context-argument:
 
|--+-| text-literal |------------+------------------------------|
   +-(--| text-literal-list |--)-+
   '-| thesaurus-invocation |----'
 
Text-literal-list:
 
   .-,------------.
   V              |
|----text-literal-+---------------------------------------------|
 
Context-unit:
 
|--+-PARAGRAPH-+------------------------------------------------|
   '-SENTENCE--'
 
Text-literal:
 
|--+--------------------------------+--+----------------+------->
   +-PRECISE-FORM-OF----------------+  '-WEIGHT--number-'
   +-STEMMED-FORM-OF----------------+
   '-FUZZY-FORM-OF--+-------------+-'
                    '-match-level-'
 
>--"word-or-phrase"--+----------------------------+-------------|
                     '-ESCAPE--"escape-character"-'
 
thesaurus-invocation:
 
|--THESAURUS--"thesaurus-name"--EXPAND-------------------------->
 
>--+-+-SYNONYM------------+--TERM OF--| text-literal |-------------------+--|
   | +-RELATED------------+                                              |
   | '-RELATION--(number)-'                                              |
   '-+-BROADER--+--TERM OF--| text-literal |--+------------------------+-'
     '-NARROWER-'                             '-FOR--count--+-LEVEL--+-'
                                                            '-LEVELS-'
 
Attribute-factor:
 
|--ATTRIBUTE--"attribute-name"---------------------------------->
 
>--+-BETWEEN--valueFrom AND valueTo-+---------------------------|
   +->--valueFROM-------------------+
   '-<--valueTO---------------------'
 
freetext-argument:
 
|--IS-ABOUT--+----------+--"word-or-phrase"--------------------->
             '-language-'
 
>--+----------------------------+-------------------------------|
   '-ESCAPE--"escape-character"-'
 
 

示例

指定 SQL 搜索自变量中提供了示例。

搜索参数

RESULT LIMIT number
一个关键字,它指定要由全文本搜索返回的最大结果数。

RESULT LIMIT 应当与 SCORE 函数一起使用来确保返回的结果已计算了分数,并且只处理最佳结果。

EXPANSION LIMIT number
一个关键字,它指定可以为了进行搜索而扩展一个术语的最大次数。例如,确定可以扩展搜索术语“a*”的次数。

STOP SEARCH AFTER number DOCUMENTS(S)
用来指定搜索阈值的一个关键字。如果在搜索期间达到了文档数,则搜索将停止,并返回中间结果。较小的值可提高搜索性能,但是可能会导致获得较少的结果,并且会省略可能具有高级别的文档。

注意,此关键字没有缺省值,并且 number 值必须是正整数。

boolean-search-expression
可以根据语法图并使用布尔运算符 NOT、AND、OR、ACCUM 和 MINUS 来组合搜索术语和搜索因子。这些运算符具有以下优先权次序(第一个的优先权最高):NOT> MINUS = ACCUM = AND > OR。可以在以下示例中了解到这种情况:
"Pilot" MINUS "1passenger" &"vehicle" | "transport" & "public"

它将按以下次序进行求值:

(("Pilot" MINUS "passenger") & ("vehicle")) | ("transport" & "public")

如果其中一个布尔自变量求值为 true(可与 OR 运算符进行比较),则 ACCUM 运算符求值为 true。等级值是通过累计两个操作数中的等级值来计算的。ACCUM 运算符与 AND 具有相同的绑定(优先权)。如果左操作数求值为 true,则 MINUS 运算符求值为 true。如果右边的操作数求值为 true,则采用左边的操作数的等级值并减去损失来计算等级值。

search-primary
如果在(文档的指定部分)找到扩展的任何文本文字,则由同义字调用组成的 search-primary 运算符求值为 true。如果在(文档的指定部分)中找到任何文本文字,则由文本文字列表组成的 search-primary 求值为 true。

SECTION(S) section-name

一个关键字,它指定要将搜索范围限制在结构化文档中的一个或多个部分。必须在创建索引时在指定的模型文件中指定这些部分的名称,请参见CREATE INDEX

这些部分的名称是区分大小写的。确保模型文件和查询中的部分名是完全相同的。

此模型描述包含可标识部分的文档的结构,因此可以单独搜索这些部分的内容。不能使用屏蔽字符来屏蔽部分名。如果在某个部分找到 search primary,则使用 SECTION 子句的 positive-search-factor 求值为 true。

context-argument IN SAME context-unit AS context-argument AND context-argument ...
此条件允许您在同一个段落或同一个句子中搜索文本文字的组合。上下文自变量始终等价于文本文字列表,并且可以使用同义字扩展来将文本文字扩展为这样一个列表。

如果文档中具有上下文单元(与段落有关的句子),文档中的每个扩展的上下文自变量至少包含其中一个文本文字,则此条件求值为 true。可以在以下示例中了解到这种情况:

("a","b") IN SAME PARAGRAPH AS ("c","d") 
          AND THESAURUS "t1" EXPAND SYNONYM TERM OF "e".

Assuming e1, e2 as synonyms of e, the following paragraphs would match:

".. a c e .." ,  ".. a c e1..",  "a c e2..",
".. a d e .." ,  ".. a d e1..",  "a d e2..",
".. b c e .." ,  ".. b c e1..",  "b c e2..",
".. b d e .." ,  ".. b d e1..",  "b d e2..".

PRECISE FORM OF
一个关键字,这使得要完全按照输入那样来搜索 PRECISE FORM OF 后面的词语(或者一个短语中的每个单词)。这种搜索是区分大小写的;即,到底使用大写字母还是小写字母是很重要的。例如,如果搜索 mouse,则找不到“Mouse”。

STEMMED FORM OF
一个关键字,它在执行搜索之前将 STEMMED FORM OF 后面的词语(或者一个短语中的每个单词)缩短为词干。这种搜索不区分大小写。例如,如果搜索 mouse,则可以找到“Mouse”。

采用哪种方式将词语缩短其词干形式是与语言有关的。目前,只支持英语,而且词语还必须遵循常规词尾变化。

FUZZY FORM OF
用于进行“模糊”搜索的一个关键字,“模糊”搜索就是搜索与搜索术语具有相似拼写的那些术语。当在由“光学字符识别”(OCR)程序创建的文档中进行搜索时,模糊搜索特别有用。这样的文档通常包括拼写错误的词语。例如,词语 economy 可能会被 OCR 程序识别为 econony。注意,前三个字符必须匹配,如果搜索源中的词语包含屏蔽字符,则不能使用模糊搜索。

match level
1 到 100 之间的一个整数,它指定相似程度,其中 100 比 1 更相似。100 指定“精确匹配”,60 被认为是一个非常“模糊值”。匹配级别越模糊,花费的搜索时间就越长,这是因为要搜索更多文档。缺省匹配级别为 70。

WEIGHT number
将文本文字与权值关联来更改缺省分数。允许的权值是 0(最低的分数权值)到 1000(最高的分数权值)之间的整数,缺省值为 100。

word-or-phrase
要搜索的词语或短语。在词语中可以使用的字符与语言有关。是否需要用分隔符将词语隔开,也是与语言有关的。对于英语和其它大多数语言,短语中的每个词语都必须用空格字符隔开。

要搜索包含双引号的字符串,应输入双引号两次。例如,要搜索文本 "wildcard" character,使用:

"""wildcard"" character"

注意,在该示例中,只能搜索一组引号。不能够搜索一个序列中的两个引号。每个词语或短语的最大长度只能为 128 个字节。

Masking characters
一个词语可以包含下列屏蔽字符:

_(下划线)
表示任何单个字符。

%(百分号)
表示任何数目的任意字符。如果一个词语由单个 % 组成,则它表示一个任意长度的可选词语。除了使用单个 % 来表示可选词语之外,一个词语不能只由屏蔽字符组成。如果使用了屏蔽字符,则不能使用“同义字”。屏蔽字符不能跟在非字母数字字符后面。

ESCAPE escape-character
一个字符,它将下一个字符标识为要搜索的字符,而不是要用作屏蔽字符。例如,如果转义字符是 $,则 $%、$_ 和 $$ 分别表示 %、_ 和 $。前面没有 $ 的任何 % 和 _ 字符都表示屏蔽字符。

THESAURUS thesaurus-name
一个关键字,用来指定要用来扩展文本文字的同义字的名称。同义字名称是已经使用同义字编译器进行编译的同义字的文件名(不带扩展名)。它必须位于 <os-dependent>/sqllib/db2ext/thes 中。或者,可以在文件名前面指定路径。

EXPAND relation
指定使用哪种关系来扩展使用同义字的文本文字。同义字已经预定义了 DB2EXTTH 命令中描述的关系。使用下列关键字来表示这些关系:

对于用户定义的关系,使用 RELATION(number),它对应于 DB2TEXTTH 中的关系定义。

TERM OF text-literal

要将其它搜索术语从同义字添加至的文本文字。

count LEVELS

一个关键字,用来指定同义字中术语的层数(深度),这些同义字将用来扩展给定关系的搜索术语。如果不指定此关键字,则假定 COUNT 为 1。深度的值必须是一个正整数值。

ATTRIBUTE Attribute-name
搜索具有与指定条件相匹配的属性的文档。属性名是指 CREATE INDEX 命令中的属性表达式的名称,或者是文档模型文件中的属性定义。

属性因子仅用于类型为 double 的属性。保证该值的精度为 15 位。16 个字符和 16 个字符以上的数字会被四舍五入。在 attribute-name、valueFrom 和 valueTo 中不允许使用屏蔽字符。有关解释,参见下列内容:

BETWEEN valueFrom AND valueTo
如果属性的值大于(不等于)valueFrom 并且小于(不等于)valueTo,则 BETWEEN 属性因子求值为 true。

>valueFrom
如果属性的值大于(不等于)valueFrom,则“>”属性因子求值为 true。

<valueTo
如果属性的值小于(不等于)valueTo,则“<”属性因子求值为 true。

如果 CREATE INDEX 命令中的属性名是使用引号来指定的,或者是在模型文件中定义的,则指定的属性名必须精确匹配。但是,如果 CREATE INDEX 命令中没有指定引号,则属性名必须采用大写。

IS ABOUT language word-or-phrase
一个允许您指定自由文本搜索自变量的选项。应当使用它来获取不同种类的分数算法,原因是它会检查文档中的术语的定位。词语或短语中使用的术语互相越接近,文档中就包括更多术语,返回的分数值就越高。

附录 E, 受支持的语言 中描述了允许的语言值,它只与泰国语有关。如果未指定,则将 en_US 语言用作缺省语言。语言只用于单词或短语的标记。

注意,仅当请求了分数值,并且搜索结果按分数值排序时,IS ABOUT 才有用。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]