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

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 全文搜索 » 使用全文搜索的注意事项

 

从文本索引和 CONTAINS 查询中删除的术语

文本索引根据为用来创建文本索引的文本配置对象而定义的设置进行构建。当以下一个或多个条件成立时,术语不会在文本索引中出现:

  • 术语包括在非索引字表中

  • 术语的长度小于最小术语长度(仅限 GENERIC)

  • 术语长度比最大术语长度长

此规则也适用于查询字符串。删除的术语可以匹配短语末尾或开头处的零个或多个术语。例如,假设术语 ['the'] 在非索引字表中:

  • 如果该术语出现在 AND、OR 或 NEAR 的任意一侧,则同时删除该运算符和该术语。例如,搜索 'the AND apple''the OR apple''the NEAR apple' 相当于搜索 'apple'

  • 如果该术语出现在 AND NOT 的右侧,则 AND NOT 和该术语均被删除。例如,搜索 'apple AND NOT the' 相当于搜索 'apple'

    如果该术语出现在 AND NOT 的左侧,则删除整个表达式,并且不会返回任何行。例如,['orange and the AND NOT apple' = 'orange']

  • 如果该术语出现在短语中,则允许该短语与出现在该删除的术语位置处的任何术语匹配。例如,搜索 'feed the dog' 匹配 'feed the dog''feed my dog''feed any dog' 等。

如果想要搜索的术语都不在文本索引中,则不会返回任何行。例如,假设 'the''a' 都在非索引字表中。则搜索 'a OR the' 不会返回任何行。

 另请参见