有关文本配置对象设置的详细说明以及查询文本索引时不同设置如何影响文本索引内容和所返回结果的信息,请参见文本配置对象设置。
要查看数据库中所有文本配置对象以及它们包含的设置的列表,请查询 SYSTEXTCONFIG 系统视图(例如 [SELECT * FROM SYSTEXTCONFIG
])。请参见SYSTEXTCONFIG 系统视图。
您可以通过使用 sa_char_terms 和 sa_nchar_terms 系统过程测试文本配置对象如何将字符串断开成术语。请参见sa_char_terms 系统过程和sa_nchar_terms 系统过程。
SQL Anywhere 提供两种缺省文本配置对象,即 default_nchar 和 default_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 '' |
|
请注意,原始字符串中的 "not" 解释为操作符,而不是单词 "not"。 |
TERM BREAKER GENERIC MINIMUM TERM LENGTH 2 MAXIMUM TERM LENGTH 20 STOPLIST 'not and' |
|
请注意,由于 "not" 解释为短语 "i am" 和 "sure" 之间的操作符 (AND NOT),所以会删除 "sure"。由于短语 "i am" 包含过短的术语而被删除,因此 AND NOT 条件的右侧 ("sure") 也被删除。这样将只留下 "understand"。 |
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 3 STOPLIST 'not and' |
|
对于模糊搜索: |
TERM BREAKER GENERIC MINIMUM TERM LENGTH 1 MAXIMUM TERM LENGTH 20 STOPLIST 'not and' |
|
|
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 20 STOPLIST 'not and' |
不对任何内容建立索引,因为没有长度等于或大于 20 个字符的术语。 这说明了 MAXIMUM TERM LENGTH 对 GENERIC 和 NGRAM 文本索引的不同影响;对于 NGRAM 文本索引,MAXIMUM TERM LENGTH 设置插入到文本索引中的 n 元语法词的长度。 |
搜索将返回空结果集,因为通过查询字符串无法形成 20 个字符的 n 元语法词。 |
您可以通过使用 sa_char_terms 和 sa_nchar_terms 系统过程测试文本配置对象如何将字符串断开成术语。请参见sa_char_terms 系统过程和sa_nchar_terms 系统过程。
下表提供如何解释文本配置对象字符串设置的示例。
“解释的字符串”列中括号内的数字表示为各个术语存储的位置信息。文档中这些数字用于说明目的。实际存储的术语不包括括号内数字。
配置设置 | 字符串 | 解释的字符串 |
---|---|---|
TERM BREAKER GENERIC MINIMUM TERM LENGTH 3 MAXIMUM TERM LENGTH 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 3 SKIPPED TOKENS IN TABLE AND IN QUERIES |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
您可以通过使用 sa_char_terms 和 sa_nchar_terms 系统过程测试文本配置对象如何将字符串断开成术语。请参见sa_char_terms 系统过程和sa_nchar_terms 系统过程。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |