Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 查询数据 » 文本配置对象

 

文本配置对象示例

有关文本配置对象设置的详细说明以及查询文本索引时不同设置如何影响文本索引内容和所返回结果的信息,请参见文本配置对象设置

要查看数据库中所有文本配置对象以及它们包含的设置的列表,请查询 SYSTEXTCONFIG 系统视图(例如 [SELECT * FROM SYSTEXTCONFIG])。请参见SYSTEXTCONFIG 系统视图

缺省文本配置对象

SQL Anywhere 提供两种缺省文本配置对象,即 default_nchardefault_char,分别用于 NCHAR 和非 NCHAR 数据。这些配置在首次尝试创建文本配置对象或文本索引时创建。如果因误操作而删除了某个配置,则下次尝试创建文本配置对象或文本索引时将重新创建该配置。

下表所示为在安装时 default_char 和 default_nchar 的设置。选择这些设置是因为它们能够最好地适合大多数基于字符的语言。强烈建议不要更改缺省文本配置对象中的设置。

设置 安装值
TERM BREAKER

0 (GENERIC)

MINIMUM TERM LENGTH 1
MAXIMUM TERM LENGTH 20
STOPLIST (空)

如果删除了某个缺省文本配置对象,则下次创建文本索引或文本配置对象时将自动重新创建该对象。请参见DROP TEXT CONFIGURATION 语句

文本配置对象示例

下表说明了不同文本配置对象的设置、各种设置如何影响索引内容以及如何解释全文查询字符串。所有示例均使用字符串 'I'm not sure I understand'

配置设置 建立索引的术语 查询解释

TERM BREAKER GENERIC

MINIMUM TERM LENGTH 1

MAXIMUM TERM LENGTH 20

STOPLIST ''

I m not sure I understand

"I m" AND not AND sure AND I AND understand'

TERM BREAKER GENERIC

MINIMUM TERM LENGTH 2

MAXIMUM TERM LENGTH 20

STOPLIST 'not and'

sure understand

'sure AND understand'.

TERM BREAKER NGRAM

MAXIMUM TERM LENGTH 3

STOPLIST 'not and'

sur ure und nde der ers rst sta tan

'sur AND ure AND und AND nde AND der AND ers AND rst AND sta AND tan'.

在模糊搜索的情况下:

'sur OR ure OR und OR nde OR der OR ers OR rst OR sta OR tan'

TERM BREAKER GENERIC

MINIMUM TERM LENGTH 1

MAXIMUM TERM LENGTH 20

STOPLIST 'not and'

I m sure I understand

'"I m" AND sure AND I AND understand'.

TERM BREAKER NGRAM

MAXIMUM TERM LENGTH 20

STOPLIST 'not and'

不对任何内容建立索引,因为没有长度等于或大于 20 个字符的术语。

这说明了 MAXIMUM TERM LENGTH 对 GENERIC 和 NGRAM 文本索引的不同影响;对于 NGRAM 文本索引,MAXIMUM TERM LENGTH 设置插入到文本索引中的 n 元语法词的长度。

搜索将返回空结果集,因为通过查询字符串无法形成 20 个字符的 n 元语法词。

字符串解释示例

下表提供如何解释文本配置对象字符串设置的示例。

“解释的字符串”列中括号内的数字表示为各个术语存储的位置信息。文档中这些数字用于说明目的。实际存储的术语不包括括号内数字。

配置设置 String 解释的字符串

TERM BREAKER GENERIC

MINIMUM TERM LENGTH 3

MAXIMUM TERM LENGTH 20

'w*'

'"w*(1)"'

'we*'

'"we*(1)"'

'wea*'

'"wea*(1)"'

'we* -the'

'"we*(1)" -"the(1)"'

'we* the'

"we*(1)" & "the(1)"'

'for* | wonderl*'

'"for*(1)" | "wonderl*(1)"'

'wonderlandwonderlandwonderland*'

''

'"tr* weather"'

'"weather(1)"'

'"tr* the weather"'

'"the(1) weather(2)"'

'"wonderlandwonderlandwonderland* wonderland"'

'"wonderland(1)"'

'"wonderlandwonderlandwonderland* weather"'

'"weather(1)"'

'"the_wonderlandwonderlandwonderland* weather"'

'"the(1) weather(3)"'

'the_wonderlandwonderlandwonderland* weather'

'"the(1)" & "weather(1)"'

'"light_a* the end" & tunnel'

'"light(1) the(3) end(4)" & "tunnel(1)"'

light_b* the end" & tunnel'

'"light(1) the(3) end(4)" & "tunnel(1)"'

'"light_at_b* end"'

'"light(1) end(4)"'

'and-te*'

'"and(1) te*(2)"'

'a_long_and_t* & journey'

'"long(2) and(3) t*(4)" & "journey(1)"'

TERM BREAKER NGRAM

MAXIMUM TERM LENGTH 3

'w*'

'"w*(1)"'

'we*'

'"we*(1)"'

'wea*

'"wea(1)"'

'we* -the'

'"we*(1)" -"the(1)"'

'we* the'

'"we*(1)" & "the(1)"'

'for | la*'

'"for(1)" | "la*(1)"'

'weath*'

'"wea(1) eat(2) ath(3)"'

'"ful weat*"'

'"ful(1) wea(2) eat(3)"'

'"wo* la*"'

'"wo*(1)" & "la*(2)"'

'"la* won* "'

'"la*(1)" & "won(2)"'

'"won* weat*"'

'"won(1)" & "wea(2) eat(3)"'

'"won* weat"'

'"won(1)" & "wea(2) eat(3)"'

'"wo* weat*"'

'"wo*(1)" & "wea(2) eat(3)"'

'"weat* wo* "'

'"wea(1) eat(2)" & "wo*(3)"'

'"wo* weat"'

'"wo*(1)" & "wea(2) eat(3)"'

'"weat wo* "'

'"wea(1) eat(2) wo*(3)"'

'w* NEAR[1] f*'

'"w*(1)" & "f*(1)"'

'weat* NEAR[1] f*'

"wea(1) eat(2)" & "f*(1)"'

'f* NEAR[1] weat*'

'"f*(1)" & "wea(1) eat(2)"'

'weat NEAR[1] f*'

'"wea(1) eat(2)" & "f*(1)"'

'f* NEAR[1] weat'

'"f*(1)" & "wea(1) eat(2)"'

'for NEAR[1] weat*'

'"for(1)" & "wea(1) eat(2)"'

'weat* NEAR[1] for'

'"wea(1) eat(2)" & "for(1)"'

'and_tedi*'

'"and(1) ted(2) edi(3)"'

'and-t*'

'"and(1) t*(2)"'

'"and_tedi*"'

'"and(1) ted(2) edi(3)"'

'"and-t*"'

'"and(1) t*(2)"'

'"ligh* at_the_end of_the tun* nel"'

'"lig(1) igh(2)" & ("the(4) end(5) the(7) tun(8)" & "nel(9)")'

'"ligh* at_the_end_of_the_tun* nel"'

'"lig(1) igh(2)" & ("the(4) end(5) the(7) tun(8)" & "nel(9)")'

'"at_the_end of_the tun* ligh* nel"'

'"the(2) end(3) the(5) tun(6)" & ("lig(7) igh(8)" & "nel(9)")'

'l* NEAR[1] and_t*'

"l*(1)" & "and(1) t*(2)"'

'long NEAR[1] and_t*'

'"lon(1) ong(2)" & "and(1) t*(2)"'

'end NEAR[3] tunne*'

'"end(1)" & "tun(1) unn(2) nne(3)"'

TERM BREAKER NGRAM

MAXIMUM TERM LENGTH 3

SKIPPED TOKENS IN TABLE AND IN QUERIES

'"cat in a hat"'

'"cat(1) hat(4)"'

'"cat in_a hat"'

'"cat(1) hat(4)"'

'"cat_in_a_hat"'

'"cat(1) hat(4)"'

'"cat_in a_hat"'

'"cat(1) hat(4)"'

'cat in a hat'

'"cat(1)" & "hat(1)"'

'cat in_a hat'

'"cat(1)" & "hat(1)"'

'"ice hat"'

'"ice(1) hat(2)"'

'ice NEAR[1] hat'

'"ice(1)" NEAR[1] "hat(1)"'

'ear NEAR[2] hat'

'"ear(1)" NEAR[2] "hat(1)"'

'"ear a hat"'

'"ear(1) hat(3)"'

'"cat hat"'

'"cat(1) hat(2)"'

'cat NEAR[1] hat'

'"cat(1)" NEAR[1] "hat(1)"'

'ear NEAR[1] hat'

'"ear(1)" NEAR[1] "hat(1)"'

'"ear hat"'

'"ear(1) hat(2)"'

'"wear a a hat"'

'"wea(1) ear(2) hat(5)"'

另请参见